.htaccess htaccess:重定向以问号a结尾的链接

.htaccess htaccess:重定向以问号a结尾的链接,.htaccess,.htaccess,我有几个链接看起来像这样,不幸的是正在使用: http://www.example.com/page/? http://www.example.com/another-page/?? 有没有可能让他们在没有问号的情况下重定向,或者删除他们 我试过: RewriteRule /page/? http://example.com/page/ [R=301,L] RewriteRule /page/\? http://example.com/page/ [R=301,L] RewriteRule ^

我有几个链接看起来像这样,不幸的是正在使用:

http://www.example.com/page/?
http://www.example.com/another-page/??
有没有可能让他们在没有问号的情况下重定向,或者删除他们

我试过:

RewriteRule /page/? http://example.com/page/ [R=301,L]
RewriteRule /page/\? http://example.com/page/ [R=301,L]
RewriteRule ^/page/\? http://example.com/page/ [R=301,L]
RewriteRule ^/page/\?$ http://example.com/page/ [R=301,L]
Redirect 301 /page/? http://example.com/page/

在重写规则中,无法与查询字符串(甚至是
)匹配。由于查询字符串本身为空,您甚至无法与变量
%{query\u string}
匹配。您需要做的是匹配实际请求:

RewriteCond %{THE_REQUEST} \ /+([^\ \?]+)\?(\ |$)
RewriteRule ^(.*)$ /$1? [L,R=301]

规则目标末尾有一个
,这看起来很奇怪,但这就是告诉mod_rewrite删除查询字符串的方式。

不幸的是,这不起作用。什么也没发生。这个htaccess中有很多内容,但我有另一个完全不相关的
重写
规则,就在我尝试这个规则的上面,这个规则正在做它应该做的事情。谢谢您的尝试。@deflame如果您有其他规则,重定向必须在它之前。如你所见。