WordPress Multisite 的重定向 Redirect 規則

WordPress Mmultisite Redirect

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

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

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

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 域名配置

以搜尋引擎來看網址,有帶 www 和不帶 www 的網址是不同的兩個 URL,當它們指向同一個網站時,會讓搜尋引擎不知應該選擇哪一個 URL 作為主要的網址。若 WordPress 網站可以進入管理後台,在 WordPress Address (URL) 和 Site Address (URL) 打入網址,決定要不要帶 www 網址。
yungke
Follow me
Advertisement

Follow Me

查看本文
喜愛 Like 點擊數!!
Back to top