2013-05-31 76 views
2

我是Apache的新手。我試圖做一個永久的301通過Apache的mod_rewrite重定向到以下網址:Apache Mod_rewrite 301重定向

http://www.mysite.com/products.php?page=TheForm

http://www.mysite.com/the-form/

的問題是,我們已經在第一URL查詢字符串。我如何處理這種情況通常我使用下面的代碼,但查詢字符串不能傳遞給RewriteRule。

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC] 
    RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L] 

    RewriteRule ^products.php?page=TheForm$ http://www.mysite.com/the-form [R=301,L] 
</IfModule> 

回答

2

重寫規則中測試的URI路徑不包含查詢。應該使用QUERY_STRING變量。

你可以試試這個:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{QUERY_STRING} page=TheForm [NC] 
RewriteRule ^products\.php /the-form/? [R=301,NC,L] 
+0

感謝您的回答,我只是想你的代碼,但它仍然無法正常工作:( – Mark

+0

請確保瀏覽器的緩存被清除,它應該工作是什麼樣的。 –

+0

真棒!非常感謝faa它在我清除緩存後正常工作 – Mark