2

我是 Apache 的新手。我正在尝试通过 apache mod_rewrite 将永久 301 重定向到以下 URL:

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>
4

1 回答 1

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]
于 2013-05-31T04:35:39.493 回答