获取Server Config上下文中的mod_write规则以应用于所有站点

时间:2011-04-04 02:27:03

标签: mod-rewrite apache2

长期读者,第一次海报。

我有一些在虚拟主机上下文中可以正常工作的重写规则,但是我无法在服务器配置上下文中应用它,我想这样做它适用于所有虚拟主机。

指令:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/?cgi-sys/defaultwebpage\.cgi$ / [R=301,L]
</IfModule>

我已经尝试改变它以不强制执行开始和结束:

 RewriteRule cgi-sys/defaultwebpage\.cgi / [R=301,L]

但我无法触发它。

我错过了什么?

的Apache / 2.2.13

正如评论中所述,用户正在输入:

 http://www.example.com/cgi-sys/defaultwebpage.cgi

以下日志条目结果:

 203.4.5.6 - - [05/Apr/2011:10:23:16 +1000] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.1" 200 26 "-"
 "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko)
 Version/5.0.4 Safari/533.20.27"

现在,有问题的网站有一个带有此规则的.htaccess文件,我认为该文件正在拦截此请求:

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule .* index.php [L]

我暂时禁用了该指令,然后apache只服务了一个香草404:

 203.45.73.63 - - [05/Apr/2011:10:27:28 +1000] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.1" 404 - "-" 
 "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko) 
 Version/5.0.4 Safari/533.20.27"

2 个答案:

答案 0 :(得分:0)

我理解你的规则:

客户端通过重写最后一条规则,将example.com/cgi-sys/defaultwebpage.cgi规则匹配并重定向到/,并指向index.php

文件example.com/index.php是否存在?

答案 1 :(得分:0)

当然,您在执行此操作后重新加载了服务器配置文件?您不必使用每个目录规则,但是您可以在此处执行。