我的htaccess不太有效:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.PHP$/blah/$1 [R=301,L]
RewriteRule ^(.*)$/blah/index.PHP/$1 [L]
基本上/blah/about.PHP应该重定向到/ blah / about
我正在使用codeigniter,因此需要最后一行来处理URL.
重定向工作正常但我在/ blah / about中得到内部服务器错误
**编辑 – 错误日志:
由于可能的配置错误,请求超出了10个内部重定向的限制.如有必要,使用’LimitInternalRecursion’增加限制.使用“LogLevel debug”获取回溯.
解决方法:
我想你只需要改变你的最后一行:
RewriteRule ^(.*)$/blah/index.PHP?/$1 [L]
我没有CodeIgniter的特定经验,但通常框架希望通过中央控制器(index.PHP)推送所有请求,然后从那里解析请求的URL.
编辑:刚刚用这里的例子更新我的答案:http://codeigniter.com/wiki/mod_rewrite/,这应该是CodeIgniter想要它的方式.
更新:您可能应该为第二个RewriteRule复制RewriteConds,它们仅适用于第一个:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.PHP$/blah/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$/blah/index.PHP/$1 [L]