我是Apache新手。我试图通过apache mod_rewrite:
将永久301重定向到以下URLhttp://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>
答案 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]