最近開了一個讀者回饋表單郵箱,無論是對文章的感想或是對部落格的感想,有什麼想回饋的都可以發郵箱跟我說:i_kkkp@163.com

301/302-重定向

前言

当你在网站上进行重定向设置时,特别是在以下两种情况下,可能会遇到问题:

从HTTP到HTTPS的重定向: 假设你配置了SSL证书,将网站从HTTP升级到HTTPS。

如果在这个过程中出现了问题,导致网站无法正常访问,你可能会想撤销重定向,回到HTTP版本。然而,问题在于,一旦你使用了301永久性重定向,浏览器会把这个重定向信息保存下来。即使你在服务器上取消了重定向,用户的浏览器依然会强制将他们重定向到HTTPS版本,无法再访问HTTP版本。

更改网站域名的重定向: 当你将网站从一个域名(比如old-domain.com)迁移到另一个域名(比如new-domain.com),你可能会使用301永久性重定向,以便搜索引擎和浏览器知道网站已经永久地移动到了新的域名。

但如果在这个过程中出现了问题,你可能希望撤销重定向,使用户能够再次访问旧域名。然而,由于301重定向被浏览器硬缓存,用户将被永久性地重定向到新域名,无法再访问旧域名。

为了避免这种情况,建议在测试确保一切正常后,一开始使用302临时性重定向,而不是301永久性重定向。302重定向不会被浏览器永久性地缓存,这意味着如果需要,你可以随时撤销重定向,而用户不会被永久性地锁定在新的网址上。这样可以避免用户需要手动清除浏览器缓存的繁琐步骤,提供更好的用户体验。

  • 301重定向:意味着资源(页面)被永久性地移动到了一个新的位置。客户端/浏览器不应再尝试请求原始位置,而应该从现在开始使用新的位置。

  • 302重定向:意味着资源暂时位于其他地方,客户端/浏览器应继续请求原始URL。

301是永久性重定向。即使你从服务器移除了重定向,你的浏览器仍然会将资源永久性地重定向到新的域名或HTTPS,因为它们被硬缓存。

所以,302不会被浏览器硬缓存,如果你从服务器(网站)移除了重定向,你就能够访问旧版本。

清除301/302重定向缓存通常涉及清除浏览器缓存或者操作系统的DNS缓存。下面是如何在不同平台上做的说明:

清除浏览器缓存(适用于Windows、macOS、Linux)

Google Chrome:

  1. 打开Chrome浏览器。
  2. 点击右上角的三个垂直点,选择“更多工具”。
  3. 选择“清除浏览数据”。
  4. 在弹出的窗口中,选择“高级”选项卡。
  5. 选择“所有时间”作为时间范围。
  6. 勾选“缓存图像和文件”选项。
  7. 点击“清除数据”按钮。

Mozilla Firefox:

  1. 打开Firefox浏览器。
  2. 点击右上角的三条水平线,选择“隐私与安全”。
  3. 在“Cookie和站点数据”部分,点击“清除数据”。
  4. 确保勾选了“缓存”选项。
  5. 点击“清除”。

Microsoft Edge:

  1. 打开Edge浏览器。
  2. 点击右上角的三个水平点,选择“设置”。
  3. 滚动至底部,点击“查看高级设置”。
  4. 在“隐私与服务”部分,点击“清除浏览数据”。
  5. 勾选“缓存图像和文件”选项。
  6. 点击“清除”按钮。

清除操作系统的DNS缓存(适用于Windows、macOS)

Windows:

  1. 打开命令提示符(在开始菜单中搜索“cmd”并打开)。
  2. 输入以下命令并按下回车键:
    ipconfig /flushdns

macOS:

  1. 打开终端(在应用程序 > 实用工具文件夹中找到)。
  2. 输入以下命令并按下回车键:
    sudo dscacheutil -flushcache
    然后输入管理员密码并再次按下回车键。

请注意,清除浏览器缓存可能会导致您在网站上的登录状态丢失,所以请确保您已经备份了重要的信息,以防需要重新登录网站。

Webpack-自定义 loader/plugin Webpack 中的 sideEffects 该怎么用

評論