【问题标题】:Failsafe for when mod_rewrite is disabled禁用 mod_rewrite 时的故障保护
【发布时间】:2014-08-08 14:30:54
【问题描述】:

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

如果 mod_rewrite 关闭,我是否有故障保险可以指示所有请求说一个内部 500 或可能是一些错误页面(如果我可以自定义它会很棒)?

【问题讨论】:

标签: php regex apache .htaccess mod-rewrite


【解决方案1】:

您可以将所有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>

【讨论】:

    猜你喜欢
    • 2021-09-23
    • 2011-06-26
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    相关资源
    最近更新 更多