为什么RewriteEngine On之后的所有内容都被忽略?

所以我试图让我的新网站mod_rewrite工作。 几年前,我已经成功地使用了mod_rewrite,但这次在'RewriteEngine On'之后没有一个单独的命令。

我在我的本地Apache 2.2上获得与我的Web主机服务器上完全相同的效果,所以不是服务器没有configuration为mod_rewrite。 我的本地机器运行Windows,而远程服务器是Linux,所以它们是相当独立的系统。 以下是我为本地主机检查的内容:

  • httpd.conf中的'LoadModule rewrite_module'行没有用#
  • 我有'选项索引FollowSymLinks包括'在我的httpd.conf为我的HTML目录
  • 我也有'AllowOverride All'的选项旁边。
  • 正在访问我网站根目录中的.htaccess文件。 把废话在第一行让我一个内部服务器错误,删除它把它拿走
  • 把'RewriteEngine奶酪'作为第一行让我在我的error.log中说'RewriteEngine必须打开或closures',所以它似乎已经准备好做一些重写…

但。 RewriteEngine On后没有input任何结果! 我可以在那里写废话,没有错误信息。 我已经把很多命令作为一个testing,但即使这个.htaccess文件也没有做任何事情:

RewriteEngine On RewriteRule ^.*$ test.html [R] 

这应该重写每一个页面我去成为test.html不应该呢? 然而,什么都没有发生 – 如果我去hello.html,我只是得到一个网页,说没有findhello.html。

请有人提出一个build议,接下来要做什么?

Linuxconfiguration文件(包括Apacheconfiguration文件)要求最后一行为空。 最后一个换行符之后的所有内容都将被忽略。

难以置信。 经过几天的努力,这个工作,我突然发布的.htaccess文件突然开始今天,在本地和远程服务器上工作。 我做了什么? 我不知道。 我尝试添加一个空的最后一行,作为另一个答案build议 – 然后它的工作。 但是现在我已经摆脱了空的最后一行,它仍然有效。 所以我不知道发生了什么事。 对不起,这里模糊的结果。 对我来说这是一个谜。

这甚至不像重新启动我的本地计算机是解决scheme,因为我没有重新启动远程服务器,我的.htaccess文件突然开始在那里工作了。 这是我重新testing之前上传的唯一一个文件,以查看它是否有效。