我尝试将所有文件和文件夹重定向到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]
谢谢。
答案 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。