如何修復406 error或者406 Not Acceptable錯誤

錯誤型別:
HTTP錯誤
錯誤名稱:
HTTP 406错误码
英文名稱:
HTTP 406 Error
錯誤描述:
406错误消息中的外观和文本取决于用于访问该网站的网站、主机和浏览器。 406错误可能会揭示错误的来源。其他时候,您可能会发现这是一个简单的“406 Not Acceptable”错误,没有任何信息可以帮助您解决问题。
錯誤變體:
406 Not Acceptable
An appropriate representation of the requested resource could not be found on this server
更多資訊

如何修復406 error或者406 Not Acceptable錯誤

伺服器和客戶端錯誤偶爾會發生,我們通常將它們稱為HTTP響應或狀態程式碼。 “406 error”或“406 Not Acceptable”錯誤就是這樣一種HTTP響應。

您可能會在訪問網站時看到406 error。或者更糟的是,在您的網站上。雖然它可能會激怒普通網際網路使用者,但對於網站或應用程式所有者來說,它可能是可怕的。除了看起來有些不專業和令人困惑之外,任何HTTP響應程式碼,包括406 error,都可能失去銷售和使用者。

本文將解釋“406 Not Acceptable”錯誤的基礎知識、原因、修復方法以及將來避免它的步驟。

    1. 什麼是406錯誤?
    2. 是什麼導致了406錯誤?
    3. 如何修復406錯誤
    4. 防止將來出現406錯誤

什麼是406錯誤?

好訊息是HTTP錯誤“406 Not Acceptable”訊息並不像404伺服器錯誤(通常表示網頁不存在)甚至301或500 HTTP錯誤那麼常見。因此,你絕對不應該看到這個。

儘管這種情況很少見,但406錯誤仍有可能成為您網站的問題。它通常看起來像這樣:

“406 Not Acceptable”訊息的一個示例

“406 Not Acceptable”訊息的一個示例。

該訊息通常為:

Not Acceptable

An appropriate representation of the requested resource could not be found on this server.

然後它有時會識別問題所在的“請求的資源”,並在末尾提到其他訊息或伺服器資訊:

一些406錯誤顯示被拒絕的資源

一些406錯誤顯示被拒絕的資源

406錯誤訊息中的外觀和文字取決於用於訪問該網站的網站、主機和瀏覽器。 406錯誤可能會揭示錯誤的來源。其他時候,您可能會發現這是一個簡單的“406 Not Acceptable”錯誤,沒有任何資訊可以幫助您解決問題。

現在,讓我們假設瀏覽器說的是簡單的英語而不是這些神祕的資訊。

在這種情況下,瀏覽器會說這樣的話:你好,我是瀏覽器。我試圖顯示此網頁,但發生了兩個問題之一:

  1. 該網站的伺服器向我傳送了錯誤的檔案格式,因此我無法接受。
  2. 該網站的伺服器違反了某些設定或安全要求。

因此,請解決違規問題或讓伺服器使用我接受的檔案格式之一。如果您想知道,這裡是我知道如何閱讀的檔案格式。

要是瀏覽器這麼友好就好了!

本質上,伺服器與用於呈現 Web 應用程式的瀏覽器或機器之間存在錯誤通訊。瀏覽器要麼無法讀取傳入的內容,要麼無法驗證資料,因為它不符合某些要求。現在我們必須回答一些問題來找出造成這種誤解的原因。

是什麼導致了406錯誤?

每次開啟網頁時,您的瀏覽器(如 Safari、Firefox、Brave、Chrome 或 Internet Explorer)都會向頁面伺服器傳送請求以獲取站點內容和資料庫檔案。瀏覽器充當您和伺服器之間的信使——它告訴伺服器使用者想看到什麼,並希望返回正確的資訊。

在第一個請求期間,瀏覽器會告訴伺服器它可以接受的所有檔案格式。它被稱為Accept-標頭請求,它提示伺服器以正確的格式傳送檔案以生成整個網站或Web應用程式,從頭開始。

有時,伺服器會傳送格式不合適或違反瀏覽器或客戶端計算機規定的規則的回覆。在這種情況下,瀏覽器視窗中會出現406錯誤,表明伺服器沒有提供適當的資料。

以下是標頭請求中可能出現的“錯誤格式”和“違反規則”的一些示例:

  • Accept-ranges:一些伺服器設定了安全措施或只允許響應中的特定檔案大小範圍。如果響應嘗試傳送超出允許範圍的太多位元組,您將看到 406 錯誤。
  • Accept-encoding:這是用於壓縮檔案的標題區域,因此它們可以快速從伺服器移動到瀏覽器。不接受某些壓縮方法和格式,從而呈現 406 錯誤程式碼。
  • Accept-charset:指字符集或站點檔案表如何獲取程式碼(如CSS和HTML )並將其轉換為可理解的字元。世界上有太多的字元、語言和符號,很難涵蓋所有這些。標準表稱為ISO-8859,但也有其他補充表。偶爾會發布新的字元表以跟上語言和字元的新增。
  • Accept-language:這通常是Accept-charset的不同名稱,它引用了它對國際語言的關注。
  • MIME type violation:有時,瀏覽器會從伺服器請求特定的MIME型別。 MIME型別是內容元素,如JPEG影象、特定視訊格式或簡單文字。如果伺服器無法提供請求的MIME型別(如JPEG影象),您將看到406錯誤。

解決和修復406錯誤的主要方法是檢查Accept-、Request-和Response-標頭中的問題的原始碼。

檢視Accept-Response-標頭的最簡單方法是在瀏覽器中開啟一個網頁,右鍵單擊並選擇Inspect

轉到Network > Headers以顯示來自此網頁的所有請求。

network-and-headers

右鍵單擊並在瀏覽器中選擇“Inspect”,然後轉到“Network”和“Headers”選項卡。

您通常可以從長列表中選擇任何請求以檢視該特定請求的 Request-Response-標頭。

Response- 和 Request-標頭之類的內容

單擊列表中的任何請求以檢視諸如Response- 和 Request-標頭之類的內容

或者,您可以聯絡您的Web開發人員以檢視原始碼。但是,當您擁有用於除錯和清理資料庫的工具時,檢查原始碼會容易得多,我們將在本文後面討論。如前所述,“406 Not Acceptable”錯誤告訴我們客戶端已向伺服器傳送了有效請求,但該請求包含伺服器必須遵循的唯一要求。初始請求中的特殊要求採用HTTP Accept-標頭的形式。這給我們留下了一些潛在的原因:

  1. 伺服器未提供請求的MIME型別或正確的格式,如JPEG或mp4視訊。
  2. 伺服器沒有返回正確的語言 ( Accept-language )。例如,當瀏覽器要求提供法語時,它可能會以德語返回響應。
  3. 伺服器在響應Accept-encoding請求時使用了錯誤的壓縮方法或格式。
  4. 伺服器發回了太多與Accept-ranges請求不一致的位元組。
  5. 伺服器未能提供可理解的字元,這將導致來自瀏覽器的Accept-charset請求出現問題

您可能會看到406錯誤還有其他原因,但它們並不常見。上面的列表是從最常見到最不常見的原因。前兩個比其他更頻繁地發揮作用,因此您很有可能通常應該專注於排除 MIME 型別違規或Accept-language問題的可能性。

總體而言,網站所有者應該瞭解這些格式問題和違規行為,瞭解您網站檔案中的某些內容可能會導致問題。此類情況經常因人為錯誤而發生,例如意外輸入錯誤程式碼、刪除必要程式碼或錯誤配置伺服器。當特定的安全設定或規則阻止來自伺服器的內容傳輸時,也會出現406錯誤。

如何修復406錯誤

在完成解決406錯誤的任何步驟之前執行網站或應用程式備份是明智的。訪問站點的原始碼總是有可能導致進一步的問題,因此如果需要,您需要有一個資料庫和站點檔案備份來恢復。

確保您完成了從資料庫到應用程式以及媒體元素到站點檔案的所有內容的完整備份。

現在我們對406錯誤發生的原因有了更深入的瞭解,是時候討論解決錯誤並防止它再次發生的最佳方法了。這些策略包括客戶端原因(使用者出錯或機器工作不正常)、伺服器端原因和基於平臺的原因,如外掛錯誤。

確保URL正確

我們的第一條建議聽起來可能很簡單,但它是最快的故障排除選項,並且將重點放在客戶端(即您的計算機)的問題上。

在這種情況下,404錯誤比406錯誤更有可能發生,但如果網站URL有效,您最終可能會看到“406 Not Acceptable”錯誤。然而,瀏覽器轉換請求的方式有些奇怪。例如,在URL末尾新增“JSON”或“PHP”可能會被誤解為對這些特定格式的請求,即使客戶端不需要它們。

要解決此問題,請仔細檢查之前使用的導致錯誤的URL。嘗試再次輸入它或在網站上選擇不同的子域,看看它是否只有一個頁面沒有呈現。

406訊息在技術上被認為是客戶端錯誤程式碼(即使它通常是平臺或伺服器問題),因此這是確定客戶端是否有問題的第一個操作過程。

重置您的裝置和網路

另一個客戶端問題偶爾涉及從使用者計算機傳送到無法滿足請求的平臺的相同Accept-標頭其中許多平臺包括Hulu等面向遊戲或媒體的系統或Spotify等音樂市場。

簡單來說,您可能會登入Hulu等平臺,嘗試觀看您喜歡的電視節目,並收到406錯誤訊息。在這個例子中,問題幾乎總是在客戶端。它通常是您用來啟動平臺的計算機、網路或其他裝置。

儘管任何平臺都可能發生這種情況,但一些通常報告406錯誤的平臺包括:

  • Hulu
  • Google Play
  • Square Enix Games
  • Netflix
  • Xbox
  • Windows(通常用於遊戲)

此列表遠非完整,但它可以讓您瞭解406錯誤可能發生的位置。

媒體和遊戲平臺很複雜,有很多限制,這些限制取決於您的位置或網路配置。由於所有移動部件,您可能會遇到這樣的錯誤。

儘管我們無法幫助您對每個特定平臺進行故障排除,但請考慮執行以下建議並檢查錯誤是否已解決:

  • 上網檢查您平臺伺服器的狀態。可能只是公司伺服器的問題。
  • 重新啟動您的計算機、遊戲系統、流媒體裝置或其他機器。
  • 斷開所有裝置與電纜的連線,等待幾分鐘,然後重新連線所有裝置,然後檢查錯誤是否消失。
  • 檢查應用程式是否正在執行最新版本。另外,檢視您的任何機器是否有可用的韌體更新。
  • 重置您的家庭或辦公室網路(通過路由器的 WiFi 或網際網路連線)。
  • 如果您仍然遇到問題,請考慮從無線網路切換到有線網路連線。
  • 儘管這並不總是可能的,但請考慮使用完全不同的機器複製錯誤。確保裝置在同一網路上。如果您無法複製錯誤,請檢視您的網路和原始機器。

如果所有其他方法都失敗了,請轉到您的搜尋引擎並輸入您的平臺名稱以及“+ 406 錯誤程式碼”以獲得特定於平臺的故障排除建議。這通常會顯示論壇和支援文件,以指導您完成整個過程。

回滾您最近的CMS更改

接下來,是時候探索用於您的網站或應用程式的系統了。您可能會發現您的內容管理系統(例如WordPress)是“406 Not Acceptable”錯誤的直接原因,因為您的站點檔案中的某些內容很複雜。

無論是使用WordPress還是任何其他內容管理系統,請檢視您上次更新的時間。無論如何,WordPress都有一個堅固的預設基礎架構,旨在避免這些型別的錯誤。

但是,特定的外掛、主題或手動調整的編碼可能會產生站點檔案違反客戶端或伺服器請求的情況。簡單升級到CMS的最新版本即可立即解決問題。

要確定它是否是您的CMS ,請首先回滾發生在核心檔案上的任何最近升級。您可能已經知道,WordPress會定期向其系統傳送更新。大多數更新會自動發生,但舊版本仍需要您單擊按鈕。

此外,WordPress和其他CMS使用多個移動部件,如外掛、主題和擴充套件。這些也會定期更新,因此您可能需要回滾其中一些。

對於WordPress之外的所有系統,搜尋“平臺名稱 + 如何降級”。

如果您使用WordPress,您可以輕鬆降級您的WordPress網站,有效地將其回滾到以前的版本之一:

降級到以前的WordPress版本

降級到以前的WordPress版本

該指南概述了以下降級WordPress網站的方法,其中大部分只需要幾分鐘:

  • 手動降級您的WordPress網站。
  • 使用外掛完成WordPress系統降級。
  • 恢復以前的備份以恢復舊版本,或者至少是以前的內容和檔案。
  • 手動降級主題或外掛。
  • 使用單獨的外掛降級外掛或主題。
  • 切換到舊版本的PHP。

解除安裝和重新安裝外掛、主題和擴充套件

WordPress外掛和主題向與核心WordPress檔案互動的站點檔案新增額外程式碼。信譽良好的外掛通常不會引起任何問題,但偶爾會發生衝突。外掛、主題或第三方擴充套件可能是406錯誤的原因。

識別麻煩的外掛或主題的行之有效的方法是一一停用您的外掛和主題。禁用每個後,檢查406錯誤是否已消失。如果是這樣,你就找到了問題所在。如果它沒有消失,請重新安裝外掛或主題並繼續解除安裝下一個。

停用每個外掛

轉到WordPress中的外掛選項卡並一個一個地停用每個外掛。

分析資料庫狀態的變化和衝突

不幸的是,刪除的“問題”外掛仍然可能會影響您的WordPress資料庫,因為外掛可以完全訪問資料庫才能正常工作。因此,即使外掛的刪除使406錯誤消失,您仍然應該檢查資料庫的狀態。否則,您將來仍有可能會遇到更多問題。

如果外掛或主題不是罪魁禍首,您還應該檢查您的資料庫是否是錯誤的主要來源。有時,資料庫更改,無論是偶然的還是有意的,都會成為出現406錯誤的主要原因。

要掃描和修復您的資料庫,請考慮以下解決方案:

  1. 安裝一個資料庫掃描器和清理器,刪除無用和麻煩的表和資產。一些選項包括WP OptimizeAdvanced Database Cleaner 。此過程的大部分內容涉及刪除舊的或孤立的專案,例如垃圾帖子、修訂和後設資料。這是清理資料庫並可能消除406錯誤的堅實第一步。
  2. 掃描資料庫並查詢可能被有問題的外掛或看起來不合適或不必要的外掛更改的記錄和表。
  3. 如果您知道您的資料庫出了什麼問題,請訪問搜尋引擎並從論壇和其他線上討論中尋求幫助。其他人很有可能遇到過同樣的問題。

使用WP-Optimize之類的優化工具清理資料庫

使用WP-Optimize之類的優化工具清理資料庫。圖片來源: WP-Optimize

分析您的伺服器日誌

之前的建議側重於客戶端和麵向CMS的故障排除。現在我們將考慮所有伺服器端問題。如果您沒有使用CMS或知道406錯誤與您的CMS或客戶端計算機沒有連線,則此提示以及以下提示是最佳選擇。

伺服器故障排除的第一步是檢查日誌。無論您使用什麼型別的Web應用程式、CMS或Web設計系統;他們都有伺服器端日誌。

應用程式日誌儲存該Web 應用程式的整個(或最近)歷史記錄,以及有關每個資料庫查詢、提供的結果、請求的頁面等等的資訊。另一方面,伺服器日誌包含有關用於執行 Web 應用程式的伺服器或硬體的執行狀況和狀態的資訊。

檢查所有可能導致406錯誤的日誌,一般為:

  • error.log檔案
  • access.log檔案

除錯Web應用程式(如WordPress)

就像大多數 Web 應用程式都有伺服器和錯誤日誌一樣,它們通常也提供有關除錯應用程式本身的資訊。除錯涉及通過應用程式的程式碼來查詢和消除小錯誤(或錯誤)。

執行WordPress(以及任何與此相關的任何 Web 應用程式)完整掃描的最佳方法之一是除錯資料庫和網站檔案。幸運的是,除錯並不意味著您必須通讀每一行程式碼並自己找出錯誤。

防止將來出現406錯誤

406錯誤的問題在於它可以在許多不同的情況下彈出。作為普通消費者瀏覽Hulu或Netflix時,您可能會看到“406 Not Acceptable HTTP”錯誤。

但沒有什麼是一點點故障排除無法解決的。更令人擔憂的是406錯誤發生在您的網站或應用程式上。對於這些例項,您需要檢查伺服器和CMS站點檔案。

如果是您的網站,您將希望防止錯誤再次發生。外掛、主題和人為錯誤總是會起作用,但我們有一些建議可以讓您的資料庫和站點檔案在未來保持乾淨:

  • 僅安裝必要且信譽良好的外掛、主題和擴充套件。始終將這些元素保持在最低限度。
  • 永遠不要修改核心WordPress檔案,除非您絕對必須並且知道自己在做什麼。
  • 定期執行資料庫清理器和站點優化器。我們建議每個月完成這個過程,最好找到一個在後臺自動執行的更乾淨的外掛。
  • 養成除錯伺服器和Web應用程式的習慣。
  • 設定您的網站或應用程式的自動備份。這樣,程式碼衝突或錯誤不會給您帶來太大壓力,因為您可以恢復網站的先前版本並從那裡開始。
  • 在您計劃更新WordPress和任何外掛之前執行您的站點的手動備份,即使您已經執行了自動備份(安全總比抱歉好)。在編輯任何檔案或向站點新增新程式碼之前執行備份也是明智的。

小結

您可以通過多種方式修復406錯誤。只要您知道所看到的內容以及在哪裡尋找修復程式,您就應該能夠清除錯誤。雖然這不是更常見的WordPress錯誤之一,但如果您的配置不正確,您會不時看到它。

對於解決“406 Not Acceptable”錯誤,您還有其他建議嗎?請在下面的評論部分分享它們!

評論留言