WordPress Multisite 的重定向 Redirect 規則

·

WordPress Multisite

Photo by Tim Mossholder on Unsplash

在 WordPress Multisite 多網域管理中,主要網域需要做 301 Redirect 重定向規則,其他子網域或鏡像網域也需要做重定向。

基本 301 重定向規則中,我們要做兩個部分:

  • HTTP 301 重定向 HTTPS
  • www URL 301 重定向 no-www (或反之)

WordPress Multisite 規則寫法

WordPress Multisite 多網站模式 Nginx 的規則跟一般的寫法不同,因為不是單純只有一個域名,在 MU 底下有多個域名,紀錄一下:

if ( $host = "www.example.com" ) { rewrite "^(.*)" "https://example.com$1" break; }
set $sshhost 0;
set $sshscheme 0;
if ($host ~* "^example\.com") {  set $sshhost 1; }
if ($scheme = "http" ) { set $sshscheme 1; }
set $sshredirect "${sshhost}${sshscheme}";
if ( $sshredirect = "11" ) { rewrite ^(.*)$ https://$host$1 permanent; }

結語

這個規則寫法來自 Kinsta 工程師,這是個有趣的經驗,雖然使用 Kinsta 的主機,根本不需要自己寫 Nginx 規則,我剛好有個 Redirect 問題詢問客服,順便問了這個 Multisite 的重定向 Redirect 規則寫法,沒想到 Kinsta 工程師不吝嗇的告訴我,趕快筆記寫下來。

在 Kinsta 的控制台 (myKinsta) 的 Redirects 工具,雖然可以寫規則,但是,第一個 HTTP 301 重定向 HTTPS 部分太複雜,無法用 Redirects 工具編寫,只有第二個部分可以達成。

Redirects 301 規則

一般網站 301 重定向規則寫法,可以參考我之前寫的這一篇:Nginx 301 重定向 redirect 域名配置

https://yungke.me/nginx-301-rewrite-www/

Comments

發佈留言

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

Your Mastodon Instance