2013-08-27 78 views
0

我有.htaccess文件,其中包含一些301重定向。請參閱下面的.htaccess代碼。第三個301重定向工作正常。但是第一個和第二個重定向正在產生404 Page找不到結果。我搜索了SO和谷歌,並找到了一些解決方案。但他們都沒有工作。301重定向不起作用查詢字符串

以下是我的.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/ 

請建議。

回答

1

我已經嘗試了很多在這裏和谷歌網站找到了;沒有工作。最後,我用了一種不同的方法。我創建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,順利重定向。

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] 

我真的不知道這是最好的辦法。

+0

我試過可能在SO和谷歌中找到的方法。沒有工作。最後,我在page.php文件中使用了PHP的header()函數。 –

+0

謝謝你的回答。下次我會嘗試你建議的方式。 –