5

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

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

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

4

2 回答 2

6

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

RewriteRule name_of_page_to_exclude.php - [L]

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

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

文档有以下内容:

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

于 2012-04-23T10:20:20.650 回答
0

添加以下条件:

RewriteCond %{REQUEST_FILENAME} !-f

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

于 2012-04-23T10:13:02.820 回答