如何防止一个文件被 .htaccess 重定向?

5

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

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

这段代码将所有网址重定向到controller.php。我需要避免将index.php重定向到controller.php。所有其他网址应该重定向到controller.php

1
请参考:https://dev59.com/bFrUa4cB1Zd3GeqPmK_K - Janaki
欢迎您。请继续点赞和支持。 - Janaki
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]

文档中提到:

-(破折号) 破折号表示不进行替换(现有路径保持不变)。


0
请添加以下条件:
RewriteCond %{REQUEST_FILENAME} !-f

这将允许任何实际存在的文件,并假定它不会对已经存在的其他文件造成任何影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接