【问题标题】:How to prevent one file from .htaccess redirect?如何防止一个文件被 .htaccess 重定向?
【发布时间】:2012-05-03 22:36:55
【问题描述】:

我正在创建 php 前端控制器。这是我的.htaccess 文件。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    (.*) controller.php    [L]
</IfModule>

此代码将所有 url 重定向到 controller.php。我需要避免将index.php 重定向到controller.php。所有其他 url 应重定向到 controller.php

【问题讨论】:

标签: php apache .htaccess


【解决方案1】:

您可以使用以下语法进行异常处理:

RewriteRule name_of_page_to_exclude.php - [L]

破折号 (-) 很重要。 [L] 确保如果触发此规则,它将是最后一个将被处理的规则。所以很自然,您需要将它放在您的.htaccess 文件顶部附近,在您问题中的规则之前:

RewriteEngine on
RewriteRule name_of_page_to_exclude.php - [L]
RewriteRule (.*) controller.php [L]

documentation 有以下说法:

-(破折号) 破折号表示不应执行替换(现有路径通过未触及)。

【讨论】:

    【解决方案2】:

    添加以下条件:

    RewriteCond %{REQUEST_FILENAME} !-f
    

    这将允许任何实际存在的文件,并假定它不会为已经存在的其他文件弄乱任何其他东西。

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 2017-09-01
      • 2017-03-10
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2016-05-13
      • 2013-05-23
      相关资源
      最近更新 更多