0

我有 .htaccess 文件,其中包含一些 301 重定向。请参阅下面的 .htaccess 代码。第三个 301 重定向工作正常。但是第一次和第二次重定向会产生 404 Page not found 结果。我搜索了 SO 和 google 并找到了一些解决方案。但他们都没有工作。

以下是我的 .htaccess 文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Redirect 301 /page.php?page=8  http://www.mydomain.com/about-us/

Redirect 301 /page.php?page=5  http://www.mydomain.com/contact-us/

Redirect 301 /testimonial.php http://www.mydomain.com/testimonials/

请建议。

4

2 回答 2

1

我尝试了很多,在 SO 和 google.com 中找到了;没有任何效果。最后,我使用了不同的方法。我创建了 page.php 文件,并在那里使用了以下代码:

$page = $_GET['page'];
switch ($page) {
case 6:
$link = 'http://webindream.com/about-us/';
break;

case 7:
$link = 'http://webindream.com/contact-us';
break;

default: 
$link = 'http://webindream.com/';


}

header("Location: $link", true, 301);

希望这将帮助某人摆脱 .htaccess 并顺利重定向。

于 2013-08-29T14:46:06.430 回答
1

我认为如果你这样做,它可以工作(根据这个http://httpd.apache.org/docs/current/en/mod/mod_alias.html#redirect):

Redirect 301 /page.php http://www.mydomain.com/contact-us/

但它并没有达到你的预期。所以我建议这些规则

RewriteCond %{QUERY_STRING} (^|&)id=8(&|$)
RewriteRule ^page\.php http://www.mydomain.com/about-us/ [R=301,L]

RewriteCond %{QUERY_STRING} (^|&)id=5(&|$)
RewriteRule ^page\.php http://www.mydomain.com/contact-us/ [R=301,L]

我真的不知道这是否是最好的方法。

于 2013-08-27T13:40:47.747 回答