htaccess文件以某种方式被caching?

我有一个.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指令 – 这个文件显然覆盖了其他地方的所有其他指令。