如何修復 HTTP 302 錯誤(5 種方法)

已發表: 2021-11-06

HTTP 302 代碼是將網站用戶臨時重定向到不同 URL 的一種有價值的方法。 但是,如果您的網站錯誤地提供 302 重定向,則表明出現問題。

別擔心——你可以解決這個問題——但你需要做一些故障排除。

第一步是準確了解 HTTP 302 代碼是什麼、它們是如何工作的以及它們發生的原因。 一旦你知道了這一點,你就可以弄清楚哪裡出了問題以及如何改正。

在這篇文章中,我們將告訴您有關 HTTP 302 錯誤的所有信息。 然後,我們將分享五個故障排除技巧來幫助您解決這些問題。

讓我們開始吧!

查看我們的 302 HTTP 狀態代碼視頻指南

什麼是 HTTP 302 狀態碼?

302 代碼是一種特定類型的 HTTP 狀態代碼。 這些代碼就像服務器提供給您的瀏覽器的“註釋”。

每當您單擊鏈接或導航到 URL 時,您的瀏覽器都會向網絡服務器請求相同的內容。 作為回報,服務器將相關資源(例如,您嘗試訪問的頁面)連同 HTTP 標頭一起發回。 HTTP 狀態代碼位於該標頭內。

通常,您無法在網頁的任何位置看到這些狀態代碼。 您通常只會在發生錯誤時看到它們,或者如果您安裝了使它們可見的瀏覽器擴展程序:

顯示當前 URL 的 HTTP 狀態代碼的屏幕截圖,通過使用 Chrome 瀏覽器擴展程序顯示。
網頁的 HTTP 狀態代碼,使用 Chrome 瀏覽器擴展程序顯示。

3xx 狀態代碼(301、302 等)是一類稱為“重定向代碼”的狀態代碼。 每當服務器發回新資源而不是請求的資源時,它們就會返回。

換句話說,當您打算訪問的網站頁面將您重定向到不同的頁面時,它們就會顯示出來。

代碼 301 和代碼 302 之間的關鍵區別在於前者用於永久重定向,而後者用於臨時重定向。

301 重定向也會傳遞“鏈接汁”,而 302 則不會。 這對搜索引擎優化 (SEO) 產生了重大影響。

哦哦...您剛剛看到一個 HTTP 302 代碼彈出。 怎麼辦? 從這份詳盡的指南開始點擊推文

302 重定向的工作原理

當您為網站上暫時不可用的頁面設置 302 重定向,並且用戶訪問該頁面時,您的網絡服務器將使用特殊的 Location 標頭響應訪問者的瀏覽器。 此標頭將指示瀏覽器應將用戶重定向到的新 URL。

例如,假設用戶在瀏覽器 URL 欄中鍵入blog.example.com ,但網站配置為將其重定向到blogging.example.com

服務器響應將包括 302 狀態代碼和Location: blogging.example.com標頭。 此設置告訴用戶的瀏覽器將此請求重定向到新 URL。

當然,所有這些都是在幕後自動發生的。 用戶應該看不到任何這種播放。 相反,他們的瀏覽器應該自動將他們帶到新資源。

為什麼會發生 HTTP 302 錯誤

如果您網站上的某些內容配置錯誤,則可能會導致錯誤發出 302 代碼。 如果發生這種情況,您可能會遇到以下問題:

  • 您網站上的一個頁面,在不應該時將您的訪問者重定向到其他地方
  • 您網站上將訪問者重定向到錯誤資源的頁面
  • ERR_TOO_MANY_REDIRECTS 錯誤(也稱為“重定向循環”)

最後一個問題是唯一會顯示實際錯誤頁面的問題。 如果您使用的是 Chrome 瀏覽器,重定向循環錯誤頁面將如下所示:

Chrome ERR_TOO_MANY_REDIRECTS 錯誤消息,帶有文本
Chrome ERR_TOO_MANY_REDIRECTS 錯誤消息。

在 Mozilla Firefox 上,它看起來像這樣:

Firefox ERR_TOO_MANY_REDIRECTS 錯誤消息,帶有文本
Firefox ERR_TOO_MANY_REDIRECTS 錯誤消息。

以上所有問題都是由一些錯誤配置引起的。 這可能是插件衝突、不正確的 URL 設置或配置錯誤的.htaccess文件。

如何修復 HTTP 302 錯誤(5 種方法)

接下來,我們將引導您完成五種故障排除方法,這些方法可以幫助您找出導致問題的原因並進行修復。

在我們開始之前,請確保先對您的網站進行完整備份。 這樣,如果出現任何問題,您始終可以恢復到以前的版本。 您可以使用 WordPress 插件來執行此操作。

1.判斷重定向是否有效

302 響應通常不是錯誤。 臨時將用戶重定向到不同的頁面可能是有效的配置,通常不需要修復。

如果您的網站使用不應發布的 302 代碼進行響應,或者導致重定向循環,則這只是一個錯誤。 因此,第一步是仔細檢查哪些 URL 正在生成 HTTP 302 代碼,並確定重定向是否合適。

為此,您可以導航到您懷疑會發出 302 錯誤的網站頁面,並親自查看它們是否按預期運行。 如果暫時不可用的頁面重定向到正確的資源,則它已進行了適當的配置。

但是,如果頁面將您重定向到錯誤的資源,或者您的瀏覽器通過顯示 ERR_TOO_MANY_REDIRECTS 錯誤頁面來報告重定向循環,則表明您的一個(或多個)重定向配置不正確。

2.檢查你的插件

302 錯誤和重定向循環的最常見原因之一是插件。

一些 WordPress 重定向管理器插件和 SEO 工具(如 Yoast SEO)為您管理您的網站重定向,並使您能夠設置重定向規則:

Yoast SEO Premium 插件重定向設置頁面。
Yoast SEO Premium 插件重定向設置頁面。

如果這些規則配置錯誤,或者兩個插件衝突,可能會導致意外問題。 因此,您需要檢查您網站上安裝的每個相關工具。

例如,如果您使用流行的 301 Redirects WordPress 插件,您可以通過導航到Settings > 301 Redirects檢查配置。 在Redirect Rules下,您將看到已設置的所有重定向規則的列表:

301 重定向 WordPress 插件的重定向規則設置頁面。
301 重定向 WordPress 插件的重定向規則設置頁面。

檢查此處列出的所有 302 重定向,並確保它們都是正確的。

您還需要確保您沒有以可能導致重定向循環的方式設置任何內容。 例如,如果 Page-A 設置為重定向到 Page-B,但 Page-B 也設置為重定向到 Page-A,這將導致錯誤。

如果您有多個重定向管理器插件,但不確定是哪個導致問題,您可以嘗試從 WordPress插件頁面逐個停用它們(請務必先進行備份):

WordPress 管理儀表板中的插件頁面。
WordPress 管理儀表板中的插件頁面。

停用每個插件後,嘗試重新訪問問題 URL 以查看 302 錯誤是否仍然存在。

如果問題突然得到解決,您將知道是哪個插件導致了問題,然後您可以選擇進一步排除故障或將其從您的站點中刪除。

3. 確保您的 WordPress URL 設置配置正確

HTTP 302 錯誤的另一個常見原因是 WordPress URL 設置中的錯誤配置。

要檢查這一點,請導航到 WordPress 儀表板中的設置>常規。 在這裡,您應該看到一個WordPress 地址 (URL)字段和一個站點地址 (URL)字段:

WordPress 中的常規設置頁面,其中突出顯示了地址字段。
WordPress 中的常規設置頁面。

在大多數情況下,這兩個字段中的 URL 應該匹配。 確保它們相同,包括域名前的“www”部分(或缺少)。

與我們世界一流的支持團隊一起體驗卓越的 WordPress 託管支持! 與支持我們財富 500 強客戶的同一團隊聊天。 查看我們的計劃

如果它們不匹配,請更新設置,然後檢查發出 HTTP 302 錯誤的頁面的 URL 以查看它是否已修復。

4.檢查您的服務器配置

錯誤配置的服務器有時也會導致 302 重定向錯誤。 因此,下一步是檢查您的服務器配置。

如果您的主機使用 Apache 網絡服務器,您可以通過檢查.htaccess文件來做到這一點。

首先,通過控制面板(如 cPanel 或 FTP 客戶端)連接到您網站的服務器。 然後導航到站點的根目錄(與wp-adminwp-content文件夾相同的位置)並找到.htaccess文件:

在網站的根目錄文件夾中突出顯示的 .htaccess 文件的屏幕截圖。
站點根目錄中的 .htaccess 文件。

如果您在此處找不到.htaccess文件(並且您確定在 Apache 服務器上),您可能需要告訴 FileZilla 在隱藏文件出現在文件列表之前顯示隱藏文件。

接下來,在您喜歡的文本編輯器中打開文件。 它應該看起來像這樣:

在文本編輯器中打開的 .htaccess 文件的屏幕截圖,代碼中突出顯示了 RewriteXXX 指令。
.htaccess 文件中的 RewriteXXX 指令。

現在,我們將尋找RewriteXXX指令(上面突出顯示的元素)。 無需太技術性, RewriteCondRewriteRule指令用於執行從一個 URL 到另一個 URL 的重定向。

RewriteCond指令指定要將訪問者重定向到URL,而 RewriteRule 指令指定要將訪問者重定向的 URL。 這是一個例子:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^website.com$ RewriteRule ^(.*)$ http://www.temporary-website.com/$1 [R=302]

最後的標誌“[R=302]”告訴瀏覽器這是一個臨時的 302 重定向。

如果您在.htaccess文件中發現任何與上述類似的 RewriteXXX 組合不應該存在,您可以將它們註釋掉,保存更改,然後重新加載問題網頁以查看它是否解決了問題。

只需確保在進行任何更改之前下載並保存.htaccess文件的備用副本,以防出現問題。

5. 與您的虛擬主機交談

如果您已經嘗試了上述所有方法,但仍然遇到問題,下一步是與您的網絡託管服務商聯繫。

在此之後對 302 代碼錯誤進行故障排除需要大量技術知識。 因此,除非您是專業開發人員,否則最好向專家尋求幫助。

在 Kinsta,我們認真對待支持。 我們的 WordPress 專家團隊隨時待命,隨時幫助您解決此類問題:

Kinsta 支持頁面的屏幕截圖。
Kinsta 支持頁面。

我們全天候 24/7 可用。 您所要做的就是登錄您的 MyKinsta 帳戶並通過實時聊天與我們聯繫,以便與可以實時提供幫助的支持工程師聯繫。

不要讓 HTTP 302 代碼減慢您的滾動速度。 了解如何使用這 5 個故障排除技巧來解決這些問題點擊鳴叫

概括

HTTP 302 狀態代碼是重定向網站訪問者的一種完全正常的方式。 但是,它們僅應在資源頁面暫時不可用時使用。

假設您的網站錯誤地發出 302 代碼或導致重定向循環。 在這種情況下,盡快解決此問題至關重要,否則可能會對您的 SEO 和轉化產生負面影響。

您可以按照以下五個步驟來修復您網站上的 HTTP 302 錯誤:

  1. 通過檢查發出 302 重定向的 URL 來確定重定向是否合適。
  2. 檢查您的插件以確保所有重定向設置都有效。
  3. 確保您的 WordPress URL 設置配置正確。
  4. 通過在您的.htaccess文件中查找不正確的RewriteXXX指令來檢查您的服務器配置(僅限 Apache 服務器)。
  5. 如果問題仍然存在,請與您的網絡託管服務商聯繫以獲得進一步的技術支持。

您對 HTTP 302 錯誤有任何疑問嗎? 請在評價部分留下您的意見。