WordPress 修補|HTTPS 轉址鏈太冗?先砍掉 307 再談 SEO

—— 把強制 HTTPS 規則拉到 .htaccess 最上面,第一跳就收斂成 301

▋ 這個問題在拖什麼?

你的站不是沒做 HTTPS。是做了以後還多繞一跳。HTTP 先回 307,再補 301,轉址鏈就髒了。爬蟲多跑一步,SEO 訊號也跟著變鈍。

結論先講:不要再找外掛設定。先看 .htaccess。規則順序不對,後面怎麼補都只是擦屁股。

▋ 止血做法:301 放第一層

直接把強制 HTTPS 的 rewrite 放到網站根目錄 .htaccess 最上面。位置一定要在 WordPress 預設規則、快取規則、其他轉址規則前面。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

▍ 正確做法:位置決定勝負

  • 保留 R=301:不要改成 302,也不要留 307。
  • 不要刪 X-Forwarded-Proto:有 CDN 或反向代理時,這行很重要。
  • 改完就清快取:主機、CDN、瀏覽器都要清。

▋ 為什麼 307 不及格?

307 Temporary Redirect 代表暫時轉址。它不會像 301 那樣直接告訴搜尋引擎:這個 URL 已經永久搬家。你要的是單一、穩定、可預期的 canonical 訊號,不是中間再塞一層觀察站。

把規則放到 Apache 第一層,HTTP 一進來就先被導到 HTTPS。入口先統一,WordPress 跟外掛就不用再補跳一次。

▋ 怎麼驗證真的修好了?

不要只看瀏覽器網址列。那不準。直接查第一跳回應。

curl -I http://yourdomain.com

▍ 判斷準則:第一個回應必須直接是 301 Moved Permanently,而且 Location 直接指向 https://。只要中間還有 307,代表前面的規則還沒收乾淨。


小提醒:測試請用無痕視窗,而且要登出狀態。登入、快取、CDN 都會讓你誤判。

需要 WordPress 客製化協助?歡迎聯絡我們

文章分享