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 工具編寫,只有第二個部分可以達成。
一般網站 301 重定向規則寫法,可以參考我之前寫的這一篇:Nginx 301 重定向 redirect 域名配置:
發佈留言