自一天以来,我一直试图从我的应用程序中删除index.php。 我尝试了一切,但无法删除它。 问题是 – 我不允许在项目目录中有.htaccess文件,而在我的本地开发机器上运行的.htaccess文件中的configuration在这里不起作用。
我在本地机器上的configuration是:
<IfModule mod_rewrite.c> # Rules to serve URLs which point to files directly # ---------- RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
我知道我不能在主机configuration文件(/etc/apache2/sites-available/000-default.conf/000-default.conf)中使用RewriteBase指令。 但是禁用也不起作用。
为什么这个问题如此困难? 有很多更复杂的redirect工作是完美的,但似乎没有明确的解决scheme,从URL中删除index.php!
编辑:它被安装在Ubuntu 14.04机器上。
如果你必须避免使用.htaccess,你可以尝试另一个指令,如果你遇到了mod_rewrite的问题,就是使用如下的ErrorDocument指令:
ErrorDocument 404 /index.php
如果你走这条路线,你可能需要稍微调整应用程序代码 – 就像在index.php文件的顶部,你可能需要将$ _SERVER ['PATH_INFO']设置为$ _SERVER ['REQUEST_URI']。 比较开发和生产之间的$ _SERVER内容,以获得更好的想法,如果不这样做的话。
如果您可以像注意到的那样编辑conf文件,并且如果使用.htaccess不是策略/安全问题,则可以始终使用conf文件中的AllowOverride指令为站点启用.htaccess。