我有以下apache重写规则:
000-default.conf: RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
除非以下字符串位于网址:tab=availability
,否则如何更改此内容以允许所有内容?
答案 0 :(得分:1)
您可以在RewriteRule
本身使用否定:
RewriteRule !tab=availability https://%{HTTP_HOST}%{REQUEST_URI} [L,NC,R]
这将使用不包含给定模式的URI重定向所有请求。但是,如果您在.htaccess
中使用上述规则,那么最好添加
RewriteCond %{HTTPS} off
避免重定向循环。
此外,如果您想避免在包含QUERY_STRING
的网址中匹配给定模式任何地方,请在您的条件中使用THE_REQUEST
变量:
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !tab=availability [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NC,R]