我已经build立了一个Ubuntu和LAMP的开发服务器,但由于某种原因.htaccess奇怪的…
有一个网站上有一套规则,当我评论他们仍然工作,甚至当我将文件重命名为.htaccesss仍然工作! 如果我删除文件中的所有内容,它仍然可以正常工作,每当我进行更改时,重新启动Apache。
我已经尝试重新安装Apache,并重新安装重写模块,它仍然无法正常工作…
我添加的任何新规则似乎都没有任何影响,所以它正在从其他地方看到规则。
如果我通过在/ .htaccess文件中导致语法错误,我得到一个500服务器错误。
有caching规则的地方吗? 我从来没有遇到过这个问题!
编辑 :我解决了这个问题,通过在我的.htaccess文件中添加Options -Multiviews
检查高速caching是否发生在客户端而不是服务器端可能是值得的。 Firefox将caching任何301(PERMANLTY移动)redirect几天。 使用302(临时)redirect。 要修复“旧目标”,你可以设置一个HTML页面redirect到另一个域(例如没有www)等,以防止Firefox使用其caching。
有caching规则的地方吗? 我从来没有遇到过这个问题!
(通常)不是服务器端,而是客户端/浏览器端; 尝试caching清理您的浏览器
编辑1
build议:从你的docroot移出.htaccess – 文件。 当仍然有重写规则处于活动状态时,它们必须是somwhere:在你的docroot或者在<virtualserver> – config中。 为您的docroot禁用htaccess,将以下内容添加到您的server-config:
<virtualHost> ... DocumentRoot /some/path ... <Directory /some/path> AllowOverride None </Directory> </VirtualHost>
如果你确定你的服务器configuration中没有任何RewriteRule,并且上面的代码片段仍然会被重写,
在.htaccess文件中添加Options -Multiviews 。
由亚当回答,但不可见所以在这里,它的作品!
这可能不会帮助每个人,但在我的情况下,我发现我有一个旧的.htaccess副本坐在我的网站的父目录,实际上是从我的apache htdocs文件夹的几个目录,似乎Apache穿越了目录树和必须在我的htdocs文件夹中合并这个和我的.htaccess。 一旦我发现这个错误的文件,并删除它不会停止redirect的redirect。