Ant*_*ony 4 mod-rewrite www-data redirect 301-redirect
大约六个月前,我决定最好将我的网站放在裸域上,我们就说“example.com”。我按照网站上所有说明的内容添加了从 www.example.com 到 example.com 的 301 重定向。
现在我想过度使用裸域并在 www.example.com 下建立我的网站。在阅读了本网站和 yes-www.org 等网站上的各种问题后,我意识到从长远来看,使用“www”会更好。对于我的主要网站。现在尤其如此,因为网站越来越大,必须拆分成单独的站点(例如 news.example.com、research.example.com、community.example.com 等)。使用新的域结构,主要内容应列在 www.example.com 上。
问题是,删除旧的 www.example.com 到 example.com 的 301 重定向,并添加一个从 example.com 到 www.example.com 的重定向,对于那些仍然在缓存中保留该站点的人来说,将导致无限循环的重定向!
遗憾的是,这是一个大型网站,每天有数万名观众,而且无法以自动化方式撤消。
我唯一能想到的就是在域“www1.example.com”上设置我的主网站,从 example.com 重定向到 www1.example.com,然后以某种方式及时迁移回www.example.com?我怎么能做到这一点,但如果重定向真的看起来是永久性的?
总而言之,我希望找到一种自动化的方式来重新使用 www.example.com 而不是裸域 example.com,我真的不知道这将如何再次发生。
免责声明:我是http://www.yes-www.org/的作者,很高兴您喜欢它。
您已经在这里正确地确定了一个严重的问题,即客户端的问题,甚至可能是 301 响应的代理缓存问题。(幸运的是,搜索引擎会很快发现任何变化,所以没什么可担心的。)
关于缓存,RFC 2616 有这样的说法:
收到的状态码为 200、203、206、300、301 或 410 的响应可以由缓存存储并用于响应后续请求,受过期机制的约束,除非缓存控制指令禁止缓存。
有趣的是,浏览器在是否真正缓存 301 响应方面各不相同。不管你最终做什么,你几乎肯定会有一些用户需要清除他们的浏览器缓存。
考虑到所有这些,这就是我解决问题的方式:
虽然可能总会有一两个用户必须清除缓存以重新获得对站点的访问权限,但无论您使用何种方法,数量都应该最少,因为用户的缓存不是无限的,即使他们在此期间不要访问您的网站,他们几乎肯定会访问许多其他网站,这些网站可能会将您的旧 301 由于其年龄和缺乏使用而从缓存中推出。
最好的选择是拥有某种服务器端逻辑,因此当请求进入时example.com
,请检查引荐来源网址。如果引荐来源网址是www.example.com
,则不要直接重定向回www.example.com
,将它们发送到其他地方,或者只是显示它们的站点,将它们发送到 的子文件夹www.example.com
或其他任何位置。
此外,如果您记录这些请求,您可以获得一些良好的统计数据,了解有多少用户来自您www
并且仍然获得重定向。最终这个数字应该会下降到相当低的水平。
另外,请记住将您的到期标头添加到这些 301 中 - 这样您就不会遇到您链接到的 FireFox bug 中描述的问题。
归档时间: |
|
查看次数: |
746 次 |
最近记录: |