目前我有一个处理请求的控制器(使用友好的 URL)。要重定向到此控制器,我使用以下 .htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ __controller.php?p=$1 [L,QSA]
然后我有一个index.php重定向到 /home 这是主页(我强制这样做,所以主页也使用控制器):
<?php
header('Location: home', true, 301);
exit();
?>
但是,如果文件是 index.php 或者它是根域,我也希望它发送到这个控制器(因为我不再希望主页是 www.test.com/home 而只是 www.test.com ),因此以下每一项都将通过控制器:
www.test.com/friendly-url/123/post-topic (目前有效)
但是也:
www.test.com/index.php 和 www.test.com
显然,由于 index.php 文件存在,因此最后 2 个条件目前不起作用,因此 .htaccess 不会通过控制器发送它。