我在 Apache 配置文件中对 CGI 脚本进行了以下配置:
RewriteEngine on
RewriteCond %{QUERY_STRING} !^/var/log/syslog-ng/JBoss.*$
RewriteRule ^/cgi-bin/(.*)$ /secure-cgi-bin/$1 [R=301,L,QSA]
这个想法是,如果有人使用 CGI 脚本查看除以 开头的路径之外的路径/var/log/syslog-ng/JBoss
,他们应该通过安全的 CGI 脚本进行重定向。
我现在想更改,RewriteCond
以便无需通过安全 CGI 即可查看第二条路径。第二条路径是/var/log/syslog-ng/Tomcat
。
我该如何进行此项更改?
答案1
您可以像 samarudge 告诉您的那样使用多行和 [OR] 标志,但由于您的路径只有略微不同的,因此这里提醒一下:ReWriteCond/Rule 支持正则表达式,因此像这样的格式也是可能的:
RewriteCond %{QUERY_STRING} !^/var/log/syslog-ng/(JBoss|Tomcat).*$
答案2
你应该能够使用 [OR] 标志链接多个 RewriteCond
RewriteEngine on
RewriteCond %{QUERY_STRING} !^/var/log/syslog-ng/JBoss.*$ [OR]
RewriteCond %{QUERY_STRING} !^/var/log/syslog-ng/Tomcat.*$ [OR]
RewriteRule ^/cgi-bin/(.*)$ /secure-cgi-bin/$1 [R=301,L,QSA]