.htaccess htaccess使用php变量重定向。。。

.htaccess htaccess使用php变量重定向。。。,.htaccess,redirect,.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] 我注意到,首先,只有最上面的那条线能抓住任何东西,而事实上,其他的,像

我在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没有变量。我该怎么做

谢谢,
Derek

首先,您的第一条规则捕获任何带有
special.php
的URI,即使它后面有一堆字符。要将其限制为仅且准确地
special.php
,并确保丢弃查询字符串,请将其更改为

RewriteRule ^special.php$ http://www.mysite.com/? [L, R=301]
其次,重写规则只匹配查询字符串(问号后面的部分)后面的(注意最后一个斜杠)和前面的。因此,如果将这些规则的格式更改为

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

你该走了

顶行,如“重写引擎打开”中所示?通常情况下,房间会一直保持黑暗,直到你打开灯。。。