目前,我有一个控制器来处理请求(使用友好的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(目前正在工作)
但也包括:
www.test.com/index.php和www.test.com
显然,由于存在index.php文件,最后两个条件暂时无法工作,因此.htaccess不会通过控制器发送它。
发布于 2012-05-30 11:43:54
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^index.php$ /home [L,R=301,QSA]
RewriteRule ^$ __controller.php?p=home [L,QSA]
RewriteRule ^(.*)$ __controller.php?p=$1 [L,QSA]你在找这个吗?
那么您就不需要PHP重定向了
发布于 2012-05-30 11:50:25
将您的.htaccess代码替换为:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (?!^index\.php/?$)^(.+)$ __controller.php?p=$1 [L,QSA,NC]https://stackoverflow.com/questions/10815486
复制相似问题