我正在创建 php 前端控制器。这是我的.htaccess
文件。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule (.*) controller.php [L]
</IfModule>
此代码将所有 url 重定向到controller.php
. 我需要避免重定向index.php
到controller.php
. 所有其他 url 应重定向到controller.php
.
您可以使用以下语法进行异常处理:
RewriteRule name_of_page_to_exclude.php - [L]
破折号 ( -
) 很重要。[L]
确保如果触发此规则,它将是最后一个将被处理的规则。所以很自然,您需要将它放在.htaccess
文件顶部附近,在问题中的规则之前:
RewriteEngine on
RewriteRule name_of_page_to_exclude.php - [L]
RewriteRule (.*) controller.php [L]
该文档有以下内容:
- (破折号)破折号表示不应执行替换(现有路径未触及)。
添加以下条件:
RewriteCond %{REQUEST_FILENAME} !-f
这将允许任何实际存在的文件,并假设它不会为已经存在的其他文件弄乱其他任何东西。