.htaccess 错误500或重写规则以获取干净的URL
在我的.htaccess 错误500或重写规则以获取干净的URL,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,在我的.htaccess中使用以下重写规则时,我不断收到500个内部服务器错误: RewriteRule ^(.*)$ index.php/$1 [L,QSA] 本质上,我希望我的web应用程序上有干净的URL,即www.example.com/login的功能与www.example.com/index.php/login相同 此重写规则在本地MAMP和其他Apache测试服务器上运行良好,但在客户端的1和1.com主机上失败 RewriteRule ^(?!index\.php).*$ i
.htaccess
中使用以下重写规则时,我不断收到500个内部服务器错误:
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
本质上,我希望我的web应用程序上有干净的URL,即www.example.com/login的功能与www.example.com/index.php/login相同
此重写规则在本地MAMP和其他Apache测试服务器上运行良好,但在客户端的1和1.com主机上失败
RewriteRule ^(?!index\.php).*$ index.php/$0 [L,QSA]
您需要防止无限循环。在
index.php
上的否定断言是阻止这种情况发生的一种方法。我实际上在网站上找到了答案
它并没有修正我的规则,而是用了一种稍微不同的方式:
Options -MultiViews
RewriteEngine on
RewriteBase /dev
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+) index.php/$1 [L]
我不确定我是否喜欢否定断言,但它节省了一秒钟的时间。我应该调查一下+1让我意识到他们的存在:-)