在.htaccess
中使用以下重写规则时,我一直收到500内部服务器错误:
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
基本上,我想在我的网络应用程序上使用干净的网址,即 www.example.com/login 的功能与 www.example.com/index.php/login
此重写规则在MAMP和其他Apache测试服务器上本地工作正常,但在客户端的基于1and1.com的主机上失败。
答案 0 :(得分:2)
RewriteRule ^(?!index\.php).*$ index.php/$0 [L,QSA]
你需要阻止无限循环。对index.php
的否定断言是阻止这种情况的一种方法。
答案 1 :(得分:0)
我实际上在CodeIgniter forum找到了答案。
它没有修复我的规则,而是采用了稍微不同的方式:
Options -MultiViews
RewriteEngine on
RewriteBase /dev
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+) index.php/$1 [L]