用php变量重定向htaccess ...

时间:2012-05-15 02:01:08

标签: .htaccess redirect

我在htaccess中使用这种格式来重定向多个页面/链接:

RewriteEngine On
RewriteRule special.php http://www.mysite.com [R=301]
...
...
RewriteRule http://www.mysite.com/special.php?t=master http://www.mysite.com/index.php?q=former [R=301, L]

我注意到,首先,只有顶线才能捕捉到任何东西,事实上其他人,比如底线,在我放入顶线之前什么也没做。有什么想法吗?

其次,mysite.com/special.php?t=grave被上面的顶行重定向到mysite.com/?t=grave,从而保留了URL中的变量。我不想要这个,我只是想让它去没有变量的mysite.com。我该怎么做?

谢谢, 德里克

1 个答案:

答案 0 :(得分:1)

首先,您的第一条规则会捕获带有special.php任何 URI,即使后面跟着一堆字符也是如此。要将其限制为仅special.php,并确保查询字符串被丢弃,请将其更改为

RewriteRule ^special.php$ http://www.mysite.com/? [L, R=301]

其次,重写规则仅匹配 http://www.mysite.com/之后的部分(注意最后一个斜杠)和之前查询字符串(问号后面的部分) 。因此,如果您将这些规则的格式更改为

RewriteCond %{QUERY_STRING} t=master
RewriteRule ^special.php$ index.php?q=former [R=301, L]
你应该好好去。