Apache重写 - 重新路由除此URL之外的每个请求

时间:2013-04-29 17:07:22

标签: apache

我正在尝试在我的服务器上设置mod_status,但它会出现一个空白页:

    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from all
    </Location>

我认为问题在于它下面的重写规则:

    <Location />
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /index\.php [L]
        </ifmodule>
    </Location>

因此,我要做的是添加一条规则,该规则将重定向除服务器状态页面之外的所有请求。我修改了第二个位置指令,但它不起作用。完整的实现是:

    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from all
    </Location>
    <Location />
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !^/server-status/$
            RewriteRule ^(.*)$ /index\.php [L]
        </ifmodule>
    </Location>

有人可以告诉我这条线是否有问题,或者我还缺少其他东西吗?

RewriteCond %{REQUEST_FILENAME} !^/server-status/$

感谢您的帮助,

1 个答案:

答案 0 :(得分:2)

没关系,我明白了。

我改变了这个:

RewriteCond %{REQUEST_FILENAME} !^/server-status/$

到此:

RewriteCond %{REQUEST_URI} !^/server-status