如何修復 HTTP 406 不可接受的錯誤? 客戶端和伺服器端修復

已發表: 2024-01-26

目錄
什麼是 HTTP 406 錯誤?
如何修復 406 錯誤?
客戶端解決方案
伺服器端解決方案
如何防止406錯誤?
結論
經常問的問題

什麼是 HTTP 406 錯誤?

406錯誤代碼是客戶端錯誤,表示伺服器不接受客戶端的請求。 當伺服器無法產生與請求標頭中指定的可接受值清單相符的回應時,它會觸發。

因此,這個特定的 406 不可接受的錯誤也與 5xx 伺服器錯誤(例如 504 網關逾時)形成對比。

這是最不常見的 HTTP 錯誤之一,您在上網時幾乎不會遇到,但如果您很不幸並且不得不在您的網站上看到此錯誤,則通常如下所示:

406 Not Acceptable Error
406 不可接受的錯誤

在上圖中,您可以看到錯誤 406 已得到確認,並附加一條錯誤訊息,指出“在此伺服器上找不到所請求資源的適當表示。” 此錯誤是由 Mod_Security 產生的。

這對於人類尤其是那些非技術人員來說並沒有太大幫助,甚至聽起來相當神秘和機械化。 因此,讓我們讓您更容易理解此錯誤訊息到底想表達什麼。

客戶端(即瀏覽器或裝置)試圖表示他們嘗試顯示網頁,但可能發生了一些問題,例如:

1. 伺服器發送了錯誤的文件,瀏覽器不支援。

2. 伺服器無法產生有效的安全要求或可能不遵循協定。

了解 HTTP 錯誤 406

讓我們從非常簡單的語言開始,這個錯誤 506 只是表明伺服器無法以客戶端(即 Web 瀏覽器)請求的格式發送適當的資料。

用戶端(即您的網頁瀏覽器)具有可使用「Accept」標頭接受的特定標準或格式。 但如果伺服器無法滿足這些標準,它將以 HTTP 狀態代碼錯誤 406 進行回應。

現在最具挑戰性的部分來了,找出這個錯誤的確切原因可能會非常成問題,因為這個問題可能發生在伺服器和客戶端通訊鏈的任何地方。
但無論原因是什麼,您都可以嘗試使用以下一些方法來修復此 HTTP 406 錯誤。


如何修復 406 錯誤?

您可以遵循以下一些故障排除方法來修復錯誤 406。

客戶端解決方案

1. 檢查輸入的URL是否正確

這聽起來很明顯而且非常基本,但相信我們,這是您可以嘗試修復錯誤 406 的最簡單但最快的方法。

儘管實際上,406 錯誤可能比看起來的要嚴重,但此時如果您輸入了錯誤的 URL 並且該 URL 無效,您可能會遇到錯誤訊息「406 不可接受」。

要解決此問題,您只需重新檢查輸入的 URL 並驗證所有內容是否正確即可。 例如,

  • 檢查是否有拼字錯誤
  • 檢查是否輸入了無效的特殊字符
  • 嘗試輸入其他頁面的 URL,檢查是否僅該頁面發生這種情況。

如果錯誤仍然存在,請查看我們的其他解決方案。

2. 重置並配置您的網路和設備

由於錯誤406是客戶端問題,某些線上遊戲或媒體串流服務等平台,例如Netflix和音樂串流平台Spotify,也可能無法滿足客戶端的請求,導致顯示此錯誤。

此時,您可能認為這是伺服器端的問題,但問題更有可能發生在客戶端。 它可以是您的個人電腦、網路連線或用於啟動這些平台的任何裝置。

由於這主要是由於伺服器不相容或不支援標頭,因此您可能會在任何平台上出現此錯誤,無論是 Netflix、Amazon Prime、Hulu 等。

此外,我們無法解釋在每個平台上解決 406 錯誤的每個步驟。 但是,您可以按照每個平台的這些基本步驟操作,看看錯誤是否已修復。

  • 透過關閉或拔掉電源重新啟動網路設備,例如路由器 > 等待一段時間(約 2 分鐘) > 重新插上電源並開啟設備。
  • 同樣,您也可以重新啟動遊戲系統、個人電腦、OTT 裝置等。
  • 嘗試將您的串流裝置連接到其他網絡,例如 WLAN 或行動網絡,並檢查錯誤是否仍然存在。
  • 檢查串流媒體應用程式的當前版本並更新(如果可用)。
  • 如果上述方法都不起作用,您能做的最好的事情就是搜尋每個串流媒體平台上的線上論壇和指南。

3. 回滾最近的 WordPress 更新

注意:在嘗試更改網站上的任何內容之前,您需要做的第一件事是完整備份您的網站,作為預防措施。 這樣,如果出現任何問題,您仍然可以毫髮無傷地返回您的網站。

如果您最近在 406 錯誤代碼出現之前更新了 WordPress,請考慮立即回滾到先前的版本。

作為參考,您可以查看這篇專門的文章「如何重新安裝 WordPress? 4 種最佳遵循方法」。

同樣,您最近升級的任何擴充功能或模組也可能會導致伺服器端問題,因此恢復到這些擴充功能或模組的早期版本也可能有所幫助。

4.卸載最近新增的擴充功能、外掛程式或主題

如果您最近新增了任何擴充功能、外掛程式或主題,無論您使用什麼內容管理系統,然後都會看到錯誤 406。 最好檢查一下問題是否是他們造成的。

這是因為這些外掛程式或主題可以存取您的資料庫並可以對其進行更改,例如向您的網站檔案添加額外的程式碼或更改資料庫記錄。 這些操作可能會導致出現 HTTP 錯誤 406。

找出有問題的外掛程式或主題的最佳方法是將它們一一停用,然後查看 406 錯誤是否仍然出現。 如果錯誤消失,則停用的外掛程式或主題更有可能是罪魁禍首。

Deactivate Plugin
停用插件

5. 尋找任何資料庫記錄更改

如上一節所述,某些外掛程式和主題可以修改或變更您的資料庫記錄。 因此,即使從 WordPress 儀表板中刪除或卸載它們後,資料庫中仍可能存在一些痕跡。

這些追蹤仍然可能導致觸發錯誤 406。

您可以做的最好的事情是使用 Adminer 或 phpMyAdmin 打開資料庫並檢查表。

檢查可能被外掛程式或主題修改的 WordPress 表和記錄。

Checking WordPress Database
檢查資料庫

資訊: 如果您的網站託管在 WPOven 伺服器上,您可以透過資料庫管理器工具輕鬆存取您的資料庫。


伺服器端解決方案

如果您沒有使用 WordPress 等任何 CMS,或者在嘗試所有上述方法後仍然遇到 HTTP 錯誤 406。以下是您可以在伺服器端遵循的其他一些故障排除方法。

6.檢查伺服器日誌

檢查伺服器端是否出現問題的最佳技巧之一是檢查伺服器日誌。 無論您使用什麼 CMS、網站平台或 Web 應用程序,它們都具有可用的伺服器端日誌。

這些伺服器日誌包含有關用於執行 Web 應用程式的伺服器或硬體的運作狀況和狀態的重要資訊。


閱讀:對於 WordPress 網站,如何設定和使用 WordPress 錯誤日誌?
對於 WPOven 用戶,請閱讀:如何查看我的訪問和錯誤經驗?


7.檢查Web伺服器配置

如果您無法解決「 406 Not Acceptable 」錯誤,下一步是檢查您的 Web 伺服器設定檔。 此錯誤通常表示 Web 伺服器限制使用者存取特定 URL。

因此,有必要檢查或檢查您的 Web 伺服器配置是否有任何請求處理指令或無意的重定向。

要檢查您的網頁伺服器配置,第一步是確定您的網站使用哪種伺服器軟體。 它可以是 NGINX 或 Apache。

如果您的網站使用 Apache,請在網站系統檔案的根目錄中尋找 .htaccess 檔案。 但是,如果您的網站使用 NGINX Web 伺服器,則必須尋找 NGINX.conf 檔案。

您還可以查看我們的專門文章“WordPress .htaccess 檔案:如何建立和編輯它?”

找到 .htaccess 檔案後,在文字編輯器中將其開啟並蒐索使用 406 標誌的指令。

例如,這裡是一個區塊指令(即一組命名指令),它為 WPOven.com 配置虛擬伺服器,並確保與上方類似,對

https://wpoven.com./users/json包含 Accept: application/JSON 請求標頭將失敗並收到 406 回應代碼:

server {
listen 80;
listen 443 ssl;
server_name wpoven.com;
location /users/json {
if ($http_accept != application/json) {
return 406 https://wpoven.com/users/json$request_uri;
}
}
}

現在,您需要徹底檢查 nginx.conf 文件,看看是否有任何可疑的、異常的指令或包含 406 標誌的行。 如果發現任何錯誤,請將其標記為“評論”,然後重新啟動伺服器以查看錯誤是否消失。

8. 調試WordPress

正如我們之前提到的,許多 Web 應用程式都為您提供錯誤日誌,甚至可以隨之進行偵錯。

調試是一個涉及找出應用程式程式碼中較小的錯誤或錯誤並刪除它們的過程。 要了解有關 WordPress 調試的更多信息,請查看我們的專門帖子“WordPress 調試:如何啟用 WP_DEBUG?”

9. 檢查伺服器安全規則

  • 伺服器的安全規則旨在保護您的伺服器和網站免受 DDoS 攻擊等惡意活動的影響。
  • 但有時,這些規則可能過於嚴格,導致合法請求被阻止並觸發 406 錯誤代碼。
  • 例如,如果安全規則配置為封鎖來自特定 IP 位址的請求,它也可能會無意中阻止真正的使用者。
  • 為了避免這種情況,檢查您的伺服器安全規則非常重要,如果可能的話,進行少量調整以允許有效請求而不違反網站的保護和功能。

如何防止406錯誤?

為了防止您的網站出現 406 錯誤,請考慮實施以下注意事項。

  • 查看安全規則:
    • 檢查並審查您的伺服器上實施的安全規則。 確保它們的配置穩健但不過分嚴格。
    • 如果可能,自訂安全規則以允許必要且合法的請求。
  • 更新外掛和主題:
    • 讓您的外掛和主題保持最新。 開發人員經常發布更新來解決錯誤並提高相容性,從而減少導致 406 錯誤的衝突的可能性。
  • 監控伺服器日誌:
    • 定期檢查伺服器日誌是否有任何異常活動或錯誤訊息。 及時解決任何問題,防止其升級為 406 錯誤。
  • 測試變更:
    • 在實施重大變更(例如新增外掛程式或主題)之前,請在暫存環境中進行測試。 這使您可以在潛在衝突影響即時網站之前識別並解決它們。 除非非常必要,否則請勿修改或變更您的 WordPress 核心檔案。
  • 僅安裝受信任的外掛程式或主題:
    • 僅在必要時才嘗試安裝信譽良好且值得信賴的外掛程式、主題或擴充功能。
  • 資料庫清理:
    • 時不時地透過刪除垃圾檔案和已刪除插件的痕跡來清理或優化資料庫。
  • 定期實施調試:
    • 定期調試伺服器成為慣例。 這將使您的伺服器為訪客提供健康、更流暢的網站體驗。
  • 諮詢託管提供者:
    • 如果您的網站是託管的,請諮詢您的託管提供者以獲取協助。 他們也許能夠識別伺服器端問題或幫助您優化伺服器設定以避免 406 錯誤。
  • 使用內容傳遞網路 (CDN):
    • 實施 CDN 可以幫助高效分發網站內容並減少伺服器相關錯誤(包括 406 錯誤)的可能性。
  • 定期備份:
    • 定期備份您的網站。 如果發生錯誤,最近的備份可以讓您快速將網站還原到工作狀態。

結論

就像任何 HTTP 錯誤一樣,您可以修復 406 Not Acceptable 錯誤。 然而,您需要採取的第一步是找出觸發它的根本原因。

由於它不是常見的 HTTP 錯誤代碼,因此如果配置不正確,您仍然可能會不時遇到它。

如果您對此 406 錯誤有任何建議或疑問,請在下面的評論部分告訴我們。


經常問的問題

如何修復 406 錯誤?

您可以按照以下故障排除方法輕鬆修復 406 錯誤:
1. 檢查輸入的URL是否正確
2. 重置並配置您的網路和設備
3. 回滾最近的 WordPress 更新
4.卸載最近新增的擴充功能、外掛程式或主題
5. 尋找任何資料庫記錄更改
6.檢查伺服器日誌
7.檢查Web伺服器配置
8. 調試WordPress
9. 檢查伺服器安全規則

406是什麼意思?

406錯誤代碼表示伺服器不接受客戶端的請求。 當伺服器無法產生與請求標頭中指定的可接受值清單相符的回應時,它會觸發。

HTTP 404 和 406 有什麼不同?

HTTP 404 Not Found表示伺服器找不到所要求的資源,通常是因為缺少網頁或 URL 不正確。 而HTTP 406 Not Acceptable表示伺服器無法產生與請求標頭中指定的條件(例如內容類型或語言)相符的回應。 當伺服器無法滿足客戶端指定的要求時,就會發生這種情況。