Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache htaccess文件是否以某种方式被缓存?_Apache_.htaccess - Fatal编程技术网

Apache htaccess文件是否以某种方式被缓存?

Apache htaccess文件是否以某种方式被缓存?,apache,.htaccess,Apache,.htaccess,我有一个.htaccess文件,对页面名称进行了非常简单的重写。这是文件的内容: Options +FollowSymlinks RewriteEngine on RewriteRule setup setup.php [NC] 我现在想停止将安装程序重写为setup.php-我该如何做?我尝试从文件中删除该行,尝试删除该文件并重新启动apache,它仍在将安装程序重写为setup.php。我怎样才能让它停止?它似乎完全忽略了我创建的任何其他.htaccess文件,并且没有任何内容写入错误日志

我有一个.htaccess文件,对页面名称进行了非常简单的重写。这是文件的内容:

Options +FollowSymlinks
RewriteEngine on
RewriteRule setup setup.php [NC]
我现在想停止将安装程序重写为setup.php-我该如何做?我尝试从文件中删除该行,尝试删除该文件并重新启动apache,它仍在将安装程序重写为setup.php。我怎样才能让它停止?它似乎完全忽略了我创建的任何其他.htaccess文件,并且没有任何内容写入错误日志。它是否在某处缓存文件?我该怎么阻止它


我在ubuntu上使用apache2。

解决方案是,打开文件/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指令-此文件显然覆盖了其他地方的所有其他指令。

问题在于启用了
MultiViews
<如果可能,代码>多视图会自动向任何请求的URL添加扩展名。这与你的规则无关;碰巧您正在将
setup
重写为
setup.php
so
MultiViews
并且您的规则也在做同样的事情


-MultiViews
添加到
选项
指令以禁用它。

如果由于浏览器中缓存了重定向而导致htaccess文件无法更新,请禁用它。您可以使用诸如Google Chrome或Safari之类的webkit浏览器打开私人浏览会话或匿名窗口

每次更新htaccess文件时,您都需要关闭所有匿名窗口/选项卡,然后打开一个新窗口/选项卡。incognito窗口不会在当前会话之后写入缓存,也不会在初始加载时使用现有缓存。它是一种在测试时绕过缓存问题的好方法,也是一种查看问题是否由浏览器缓存引起的好方法

我不确定,但Firefox和IE的较新版本可能有类似的功能。

1)检查以确保nginx不会给您带来问题-我刚刚关闭了它,但如果您想使用它,我肯定有办法正确设置它。(对我来说,它是在MediaTemple最新的DV服务器上默认设置的)

2) 尝试将其从主目录的htaccess文件添加到httpd.conf或vhost.conf或食物链上的其他配置文件:

Header merge Cache-Control no-cache env=NO_CACHE
Header merge Cache-Control no-store env=NO_STORE

另外,在您询问之前,我的浏览器没有缓存页面。我已经检查过了。你把这个规则放在你的httpd.conf或某个conf.d文件中了吗?是否确实编辑了正确的.htaccess文件?它们的内容不是缓存的,而是在每次请求时读取的。它是一个名为.htaccess的文件,位于/var/www目录中。如果我将其他文件放在该目录中,它们在web根目录中可用,因此我知道它是正确的位置。我也遇到了同样的问题,在我的情况下,浏览器缓存了url重定向。我的浏览器(firefox)也缓存了它。不知道为什么,但它做到了!如果
.htaccess
根本不起作用,您就会这样做。这不是贝努伯德的问题。哦,等等,这是你自己的回答。。。我仍然不知道这两者之间有什么关系,不过老实说,我也不知道——我只是随机做了一些事情,然后解开它们,尝试其他的方法,直到我发现了一些有效的方法。这就是为什么我不接受这个;我仍然希望有人能解释一下,但是htaccess是一种很神奇的东西。试试我的,在
.htaccess
中比较
Options+MultiViews
Options-MultiViews
<但是,代码>允许覆盖所有是能够覆盖
多视图
(或任何其他)选项的先决条件。(假设
/var/www/
是您的http目录。否则,您所做的更改不会产生任何影响。)我想知道缓存是否不是在进行此更改时更新的,因为它看起来确实不相关。最近我遇到了一个htaccess问题,这让我抓狂,它肯定只是一个缓存重定向,与实际页面的缓存分离。在Chrome中,您可以打开开发工具,选择设置图标并启用“禁用缓存(当开发工具打开时)”另外,请注意,这个问题是关于一个内部重写的,它似乎是由服务器缓存的。浏览器缓存的外部重定向是另一个问题。请注意,此问题可能与内部重写有关,也可能与内部重写无关,因为很难测试浏览器是否正在缓存它。没有排除任何可能性。调试这类问题可能是最糟糕的。很高兴我很早就找到了你的答案=)+1@nitro2k01对不起,但具体怎么做?什么是期权指令?我在mamp pro本地主机上,代码点火器框架,mac yosemite。