Apache Mod_rewrite 301重定向

时间:2013-05-31 04:03:21

标签: apache mod-rewrite

我是Apache新手。我试图通过apache mod_rewrite:

将永久301重定向到以下URL

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

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

问题是我们在第一个网址中有一个查询字符串。我如何处理这种情况,因为我通常使用以下代码,但查询字符串无法传递给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>

1 个答案:

答案 0 :(得分: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]