.htaccess使用忽略查询字符串重定向

.htaccess使用忽略查询字符串重定向,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我希望在不查看查询字符串的情况下重定向,并且重定向结果也不需要附加查询字符串,因此我在重写规则的末尾添加了一个? 我尝试了以下语法,但结果非常接近 RewriteCond %{QUERY_STRING} .* [NC] RewriteRule ^exd\.asp$ http://www.example.com/index.php?r=p/consumer? [R=301,L] 而且,我试图逃避第一个?,我需要它,但结果仍然是一样的 RewriteRule ^exd\.asp$ http://w

我希望在不查看查询字符串的情况下重定向,并且重定向结果也不需要附加查询字符串,因此我在重写规则的末尾添加了一个

我尝试了以下语法,但结果非常接近

RewriteCond %{QUERY_STRING} .* [NC]
RewriteRule ^exd\.asp$ http://www.example.com/index.php?r=p/consumer? [R=301,L]
而且,我试图逃避第一个
,我需要它,但结果仍然是一样的

RewriteRule ^exd\.asp$ http://www.example.com/index.php\?r=p/consumer? [R=301,L]
结果:

http://www.example.com/index.php?r=p/consumer%3f
我想乘坐
%3f


谢谢

如果目标中已有查询字符串,则不需要在末尾追加
。只要这样做:

RewriteCond %{QUERY_STRING} .* [NC]
RewriteRule ^exd\.asp$ http://www.example.com/index.php?r=p/consumer [R=301,L]
默认情况下,将附加查询字符串,如下所示:

RewriteRule ^foo$ /bar [L]
您请求
/foo?blah
并获得
/bar?blah

但是,如果您的目标中有一个
,则除非您有
QSA
,否则查询字符串不会被追加,因此:

RewriteRule ^foo1$ /bar? [L]
RewriteRule ^foo2$ /bar?q=2 [L]

您请求
/foo1?blah
得到
/bar
,您请求
/foo2?blah
得到
/bar?q=2
。如果在重写标志中包含一个
QSA
,那么
&blah
将被附加到末尾。

嗨,Jon Lin,我确实尝试过,但没有放一个?最后,我仍然得到了结果,RewriteCond中有什么错误吗?@Shiro除非有其他规则,否则,
%3f
不会在最后被卡住,或者需要清除浏览器缓存。