vhost 上下文重写规则如何阻止早期的服务器上下文重写规则运行?

vhost 上下文重写规则如何阻止早期的服务器上下文重写规则运行?

我在服务器上下文中很早就有了这个重写规则。远在任何虚拟主机之前。它按预期工作,除非在虚拟主机上下文中运行某个重写规则。然后这个规则就被忽略了。
我没想到虚拟主机上下文中的任何重写规则会对服务器上下文中的重写规则产生影响。尤其是当服务器上下文重写规则在配置中更早的时候。

# Remove Leading WWW and Retain http or https
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%1%{REQUEST_URI} [R=301,L]

阻止上述规则运行的 vhost 上下文中的规则是重写以运行 shell 脚本(cgi)。

# Run Shell Script
RewriteCond %{REQUEST_URI} !${regex} [NC]
RewriteRule ^.* /cgi-bin/SCRIPT.sh?${QUERY_STRING} [PT,E=dontlog,L,END]

vhost 上下文中还有其他重写规则。但似乎只有这一条重写规则会阻止服务器上下文重写规则运行。

相关内容