我使用了几个重写指令,总是工作之前在Apache2,但现在我试图新的共享主机和重写规则似乎并没有得到应用。
我已经将.htaccess文件减less到以下基本规则:
RewriteEngine On Rewritebase /demo/ RewriteRule ^(.*)$ index.php/$1 [L]
正如你所看到的,我想重写每个请求到我的index.php文件从根目录演示文件夹。
所以像http://www.example.com/demo/albums/show/1这样的东西应该由http://www.example.com/demo/index.php来处理,用于标准的MVC设置。 (我使用CodeIgniter btw)
上面的指令导致500错误,所以我想也许是因为1.3和2.x之间的一些可能的语法差异。
经过一些跟踪和错误编辑,我发现重写规则本身是错,但我真的不明白为什么。
任何想法,为什么我的重写规则不起作用? 它曾经在很多不同的服务器上做过。 build议如何解决它?
注意 :mod_rewrite工作,我写了一个小testing是肯定的
RewriteBase在实际文件中正确大写?
是在httpd.conf的主要部分的规则或在一个块,也许你不需要初始斜杠/?
你的.htaccess文件似乎处于良好的状态,应该与Apache 1.3一起工作。
你是如何创build你的.htaccess的? 如果我的记忆为我服务,Apache 1.3比Apache 2.x更为敏感,所以如果您使用Windows记事本或其他编辑器使用\ r \ n为换行符创build文件,则可能会导致内部服务器错误。
如果您有权访问Apache错误日志,请参阅导致Apache生气的原因。