[WordPress]解決Elementor出現403 forbidden 無法儲存頁面|不必關Modsecurity,Exabytes 必修課

注意左下角403

「很多人以為 403 Forbidden 是網站壞了,其實不然。這代表你的伺服器(如 Exabytes)正常運作中,但它像個鐵面無私的門神,認定你透過 Elementor 或 Astra 送出的請求『看起來像攻擊』,所以拒絕讓你存取

在我使用 Exabytes 代管 WordPress 的經驗中,發現這類問題通常不是 IP 被封鎖,而是外掛與伺服器防火牆(WAF/ModSecurity)打架。當我們在編輯頁面、調整佈景主題設定時,這些強大的設計外掛會傳送大量的代碼片段給伺服器,若伺服器的安全規則過於敏感,就會誤判並回傳 403,導致存檔失敗。」

解決方法不是叫門神走開,(也就是把Modsecurity關掉),相當於減少一個保護。而是透過分析原因,去解決這個403無法儲存的問題。這邊跟大家分享!

什麼是網頁錯誤403?為什麼網站會發生403 Forbidden?

403 Forbidden 是HTTP協定中的一個狀態碼,表示伺服器雖然有成功解析請求,但是客戶端沒有存取資源的權限,簡單來說就是不允許我們去看到或存取資源的意思。

為什麼是 Elementor 導致錯誤?

因為Elementor: 儲存時會傳送極其複雜的 JSON 數據與 HTML 標籤(如 <div>, <section>),這在防火牆眼中很像「代碼注入攻擊」。

提醒:請先進行備份

解方A: 調整 max_input_vars等參數(擴張Cpanel的資料傳輸通道大小)

為什麼要改這個? 想像你的網頁是一台載滿貨物的卡車,max_input_vars 就是這台車「一次能裝載的貨物數量限制」。Elementor 的頁面非常複雜,包含大量的按鈕、圖片、間距設定,每一項都是一個「變數」。

如果你的伺服器預設限制是 1000(這在 Exabytes 等主機很常見),但你的攝影集網頁有 1500 個設定項目,那麼在點擊「儲存」時,超出的 500 個項目就會被伺服器直接丟掉,導致存檔失敗或頁面排版亂掉。

php elementor of system setting
max_input_vars 我這邊成功改成5000(原本是1000)

第一步:檢查目前的數值

在 WordPress 後台,進入 Elementor > 系統資訊 (System Info),向下捲動找到 PHP Information

  • 如果 Max Input Vars 顯示為 1000,那就代表它太小了,必須調大。

第二步:透過 cPanel 的 MultiPHP INI Editor 修改 (最推薦)

這是最安全且最有效的方法:

  1. 登入你的 cPanel 面板。

  2. 在「軟體 (Software)」區塊中找到 MultiPHP INI Editor

  3. 在下拉選單中選擇你的網站網域(例如 frameless-tw.com)。

  4. 找到 max_input_vars 這一項,將數值從 1000 手動改為 5000

  5. 捲動到最下方點擊 Apply (套用)

cpanel找到MultiPHP INI Editor
找到 max_input_vars 改到5000

第三步:針對網站的進階優化 (額外加分項,特別是作品集網頁)

既然都在這個頁面了,建議順便調整以下三個數值,這對「高畫質作品集網站」非常重要,同一個頁面繼續往下滑:

  • memory_limit: 設為 512M (確保處理大圖時記憶體夠用)。

  • post_max_size: 設為 128M (解決「存檔時 403」的隱性原因,避免傳輸資料量被限制)。

  • upload_max_filesize: 設為 128M (方便你上傳高解析度的攝影作品)。

解釋:為什麼預設的 8M 和 2M 對攝影網站是災難?

在 Exabytes 或許多主機的初始設定中,這些數值通常偏低,這會導致以下三個「藝術家噩夢」:

  1. 上傳失敗(2M 的限制): 現在的手機或單眼照片,隨便一張 JPEG 可能就超過 3MB 到 5MB。如果你的 upload_max_filesize 只有 2M,當你嘗試上傳高畫質作品時,WordPress 會直接跳出「上傳失敗」或「超過檔案大小限制」,這讓攝影集網頁根本無法建立。

  2. 存檔跳 403 / 錯誤(8M 的限制): Elementor 儲存頁面時,並不是只傳送幾個字,而是把整個頁面的結構、樣式、甚至圖片的編碼資訊統統打包。如果你的 post_max_size 只有 8M,當你的攝影作品集稍微豐富一點,傳送的資料量就會輕易衝破這個天花板,導致伺服器直接拒絕請求(回傳 403 或 Connection Reset)。

  3. 縮圖出不來(512M 記憶體的重要性): 當你上傳一張大圖,WordPress 需要「記憶體」來幫你生成不同尺寸的縮圖(用於手機版或列表頁)。如果 memory_limit 不足,這個過程會中斷,導致你的網站出現「圖片上傳了但縮圖是空白」的情況。

修改前後對比

PHP 設定項目原本預設值 (卡關原因)建議調整值 (設計型網頁專用)調整後的好處
max_input_vars1000 (內容被截斷)5000複雜排版也能完整儲存,內容不遺失。
upload_max_filesize2M (照片傳不動)128M高解析度原圖上傳不再出現錯誤。
post_max_size8M (存檔跳 403)128M確保大量圖文資料能順利傳回伺服器。
memory_limit256M (處理緩慢)512M縮圖生成與外掛運作更流暢、穩定。
php elementor of system setting
max_input_vars 我這邊成功改成5000(原本是1000)

第四步:確認是否生效

修改完後,回到 Elementor 的「系統資訊」重新整理頁面。如果看到數值變成了 5000,恭喜你,你的網站「資料通道」已經拓寬了!其他數據也可以在這個頁面確認!

解決存檔問題,但我一但插入html語法,例如表格、改文字色,還是跳403?

寫到一半的驚人插曲:

就在我寫這篇教學文,打算把表格貼上網頁時,竟然又跳出了 403 錯誤!除此之外,用Elementor改文字顏色,也會403錯誤。這正好印證了:內容越豐富(Elementor改顏色也動到了code)、包含越多 HTML 標籤(如我的表格代碼),就越容易觸發主機的 ModSecurity。

這時別慌,PHP 參數我們已經調好了,這關是『安全攔截』。

剛才之所以能存,是因為內容比較「單純」;現在一加入 HTML 表格代碼(含有 大於style>、大於table>等標籤)和三張圖片的連結,POST 回伺服器的資料量瞬間變大,且包含了大量「看起來像腳本」的標籤。 ModSecurity 的防護規則看到這一串東西,警鈴大作,判定為「惡意注入 (Code Injection)」,直接送你一個 403 Forbidden。

解決方法

  • 急著發佈->你先看解方B
  • 徹底解決->聯絡主機商協助排除規格。1. 截下這個 403 畫面。2. 寫信給 Exabytes 客服或你的主機商,告訴他們:「我正在發布一篇含有 HTML 表格的教學文章,但被 ModSecurity 擋掉了。請幫我查看日誌並將相關 Rule ID 加入白名單。」
  • 你可以把這個測試用html表格附在email裡

<style>

  .test-table { border: 1px solid #000; }
</style>
<table class=”test-table”>
  <tr>
    <td>Test Row 1</td>
    <td>Test Data</td>
  </tr>
</table>
這一段貼在程式碼應該會變成下面這樣:
           
Test Row 1Test Data

解方B: 暫時關掉Modsecurity

以下是根據自身經驗方法:

ModSecurity可能影響Wordpress裡面的elementor插件或Astra插件,因為目前 ModSecurity 採用 Comodo 規則,可能影響部分網站的運作。

透過 Cpanel後臺的 ModSecurity 選擇 off 關閉。

設定後約 3-5 分鐘生效。

**ModSecurity是安全性設定,在網站創建完後,可以調回ON。

**並非首選方法

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端