我有一个.htaccess文件做了一个非常简单的页面名称重写。 这是文件的内容:
Options +FollowSymlinks RewriteEngine on RewriteRule setup setup.php [NC]
我现在想停止重新设置setup.php – 我该怎么做? 我已经尝试从文件中删除行,我试过删除文件并重新启动Apache,它仍然重写setup.php设置。 我如何使它停止? 它似乎完全忽略了我创build的任何其他.htaccess文件,并没有什么被写入错误日志。 它caching文件的地方? 我如何阻止它?
我在Ubuntu上使用apache2。
问题是MultiViews
被启用。 如有可能, MultiViews
自动为所有请求的URL添加扩展名。 这与你的RewriteRule无关; 只是碰巧你重写了setup.php
setup
,所以MultiViews
和你的规则做了同样的事情。
将-MultiViews
添加到Options
指令来禁用它。
如果由于重定向缓存在浏览器中而导致htaccess文件不能更新,您将遇到问题。 您可以使用Google Chrome或Safari等webkit浏览器打开隐私浏览会话或隐身窗口。
每当你更新htaccess文件,你将需要关闭所有的隐身窗口/标签,然后打开一个新的。 隐身窗口将不会写入超出当前会话的缓存,并且不会在初始加载时使用现有的缓存。 它是在测试时绕过缓存问题的好办法,也是一种很好的方法,可以查看您的问题是否由浏览器的缓存引起。
我不确定,但Firefox和更新版本的IE可能有类似的功能。
1)检查以确保nginx不会对您造成任何问题 – 我只是关闭了它,但是如果您想使用它,我确信有方法可以正确设置它。 (对我来说,MediaTemple最新的DV服务器默认设置为此)。
2)尝试添加到httpd.conf或vhost.conf或其他配置文件进一步从您的主目录的htaccess文件的食物链:
Header merge Cache-Control no-cache env=NO_CACHE Header merge Cache-Control no-store env=NO_STORE
解决方案是,打开文件/ etc / apache2 / sites-available / default并更改:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
进入这个:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
注意AllowOverride指令 – 这个文件显然覆盖了其他地方的所有其他指令。