.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
不会在最后被卡住,或者需要清除浏览器缓存。