我正在创建php前端控制器。这是我的.htaccess
文件。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule (.*) controller.php [L]
</IfModule>
此代码将所有网址重定向到controller.php
。我需要避免将index.php
重定向到controller.php
。所有其他网址都应重定向到controller.php
。
答案 0 :(得分:5)
您可以使用以下语法进行例外处理:
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有以下说法:
- (破折号) 短划线表示不应执行替换(现有路径不受影响)。
答案 1 :(得分:0)
添加以下条件:
RewriteCond %{REQUEST_FILENAME} !-f
这将允许任何实际存在的文件,并假设它不会为已存在的其他文件搞乱任何其他文件。