我想出了
RewriteEngine on
RewriteRule ^(.*)?(.*)$ http://google.com [P]
但此方法适用于没有?
的地址 - 它仅适用于?
的人。
当我尝试使用?
转义/?
时 - 无论网址是否为?
还是没有,我都会重定向,
当我用?
逃离\?
时 - 我最终没有重定向。
答案 0 :(得分:2)
?
是QUERY_STRING
的一部分而非REQUEST_URI
的一部分,因此您无法直接在规则本身中进行检查。
您可以选中?
或QUERY_STRING
来检查是否存在THE_REQUEST
:
# Check that QUERY_STRING is not empty:
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^ http://google.com/ [P]
# Check for the presence of a question mark in THE_REQUEST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s+(.+)\?(.+) [NC]
RewriteRule ^ http://google.com/ [P]