我可以强制让 .htaccess 刷新吗?

36
我们正在将一个网站从一种CMS迁移到另一种。.htaccess文件已更改,需要为新的网站刷新它才能正常工作。据我所知,只有在清除浏览器缓存时,.htaccess文件才会被刷新? 对于创建网站的人来说,清除我们的缓存是可以的,但是否有办法让用户的浏览器获取新的.htaccess文件,而无需用户自行清除缓存呢?

3
浏览器不会访问 .htaccess 文件。这个文件是由 Apache 用来确定响应请求时要提供哪些文件的。它并不被浏览器所使用。 - Ben Parsons
1
".htaccess文件与浏览器缓存无关,不用担心。" - machineaddict
文件中的任何信息,例如重定向或类似的内容,是否会从文件传递到缓存中?为什么已经访问过该网站的浏览器会像旧的.htaccess文件所示被重定向?只是偶然吗? - Johann Dyck
1
是的,我认为浏览器可能会缓存网站的重定向响应(但通常不会很长时间)。在您的SEO中,您应该仅使用HTTP 302重定向(临时),而不是HTTP 301(永久)。或者更好的方法是,现在将所有旧URL重定向到新URL,并使用301进行重定向。 - Marki555
2
谢谢,我也遇到了这个问题,清除浏览器缓存解决了它。非常感谢,我都快疯了! - beluga
显示剩余2条评论
4个回答

28
如果您正在使用RewriteRule,只需使用R而不是R=301。对于其他用途,当您更改重定向时,您需要清除浏览器缓存。

12

替换 .htaccess 文件后,有些服务器会立即重新加载。

如果是这样,它会立即用于所有后续请求。您不需要刷新任何缓存。

有些服务器只会定期检查 htaccess。


2
每个请求都会被Apache检查.htaccess文件(并且对于每个请求,它会在DocumentRoot的所有子目录中检查htaccess文件,而不仅仅是当前目录)。 - Marki555
70
肯定不是这样的。一些服务器只会定期检查 .htaccess 文件。 - SColvin
4
@SColvin,有没有办法强制服务器加载更新的.htaccess文件? - pseudon
1
我已经删除了HTTP到HTTPS重定向代码,但仍然重定向到HTTPS,该怎么办? - Kiran Reddy

5
如果你已经有了一个R=301重定向,并且只是在htaccess中更改了它重定向到的位置,但对于你来说没有更新,那么很可能被缓存在你的浏览器中。 由于它进行了重定向,因此无法在该页面上执行强制刷新。 你可以尝试在另一个浏览器中操作,如果在那里可以正常运行,则只需要在Chrome中清除缓存。设置>隐私>清除浏览数据。 然后你只需勾选“缓存的图像和文件”。这不会清除你的登录或其他任何信息。

2

我在我的.htaccess文件中有一个重写规则,如下:

 RewriteCond %{HTTPS} !on
 RewriteRule (.*) https://example.com%{REQUEST_URI} [L,R=301] 

当我在本地主机上打开网站后,无法强制刷新页面。

解决方案:我添加了一个随机字符串,例如localhost/mywebsite/index.php?1234


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接