禁用mod_rewrite时的故障保护

时间:2014-06-18 10:22:36

标签: php regex apache .htaccess mod-rewrite

我的框架完全依赖于mod_rewrite在服务器上启用以进行路由。在我的.htaccess文件中,我检查是否启用了mod_rewrite.c并在其中执行重写规则。但是,如果mod_rewrite没有打开,我的应用程序基本上会停止工作,因为我不想进行http://www.domain.com/index.php/ ... url设置以确保所有请求仍然通过index.php过滤。

如果关闭mod_rewrite,是否有一个故障安全方法可以指示所有请求说出内部500或可能是某个错误页面(如果我可以定制地定义它会很好)?

1 个答案:

答案 0 :(得分:0)

您可以将所有mod_rewrite规则保留在<IfModule mod_rewrite.c>阻止和<IfModule !mod_rewrite.c>阻止中的例外:

# execute when mod_rewrite is turned on
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>

# execute when mod_rewrite is turned off
<IfModule !mod_rewrite.c>
    RedirectMatch ^(?!/error\.php).*$ /error.php
</IfModule>