将所有文件重定向到index.php

时间:2014-05-14 08:30:08

标签: php .htaccess mod-rewrite redirect

我尝试将所有文​​件和文件夹重定向到index.php以获取MVC路由,但它只能从index.php开始工作,例如learn.delapiata.ro/index.php/i/can/put/anything/here/and/redirect

我希望在没有index.php的情况下工作:learn.delapiata.ro/controllers/any_php_file.php

我在.htaccess

中使用此功能
   RewriteEngine On
   RewriteBase /
   RewriteRule ^index.php$ - [L]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-l
   RewriteRule  ^(.*)$ /index.php [L]

谢谢。

1 个答案:

答案 0 :(得分:2)

您所拥有的功能已经发挥作用 - 但您只需要-f规则:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule  ^ index.php [L]

这些规则只是表示:如果请求未指向存在的文件,请将请求发送到index.php

请注意,如果在apache配置中启用了htaccess文件,则htaccess文件仅在生效。例如,如果htaccess文件被修改为包含错误(在其中放入“asdf”) - 并且您没有得到500响应 - Apache没有读取.htaccess文件,这就是为什么它“不起作用” ”。要解决此问题,请将AllowOverride All放在适当的apache配置文件中,然后重新启动apache。