WordPress多站點模式怎么設? 快來看詳細教程!
最近,眾多網友熱衷于嘗試WordPress的多站點操作。這種模式并非僅僅在服務器上安裝多個WP程序來解析不同域名,而是通過調整一個WP程序,達到多站點、多域名共存,并且數據庫共享的效果。這其中的配置工作相當復雜。
開啟多站點模式
/* Multisite settings */ define( 'WP_ALLOW_MULTISITE', true );
在WP-CONFIG.PHP文件中加入代碼,是啟動多站點的關鍵步驟。這是整個配置過程的起點。許多人可能不清楚代碼該添加在哪里以及如何添加。實際上,只需找到正確的路徑找到該文件,操作就完成了。若這一步出錯,后續的設置都會受影響。WP-CONFIG.PHP是WordPress程序中非常關鍵的配置文件,因此在添加代碼時要格外小心。代碼添加完畢后,刷新WordPress后臺,會發現后臺界面有所變化,多出了一個“工具”-“網絡設置”選項。這一變化表明之前的操作是成功的,接下來就可以進行下一步設置了。
這里需要注意對代碼的細致操作。比如,2023年10月,就有用戶因為代碼中出現了錯誤,使得WP后臺無法正常運行。這全是因為沒有對添加的內容進行仔細核對的結果。
子域名與二級目錄選擇
在設置網絡時,首先需要決定是使用子域名還是二級目錄。這個決定將直接關系到網站構建的具體方法。選了子域名,網站就會以blog.example.com這樣的子域形式出現;而選擇了二級目錄,網站地址就會變成example.com/blog這樣的結構。不同的選擇對應著不同的應用場景。
用戶在搭建個人博客群時,更偏愛使用子域名,認為這有助于區分不同類別的文章。至于企業構建產品子站點,采用二級目錄即可巧妙融入主站架構。選擇何種方式需依據個人需求,且需深思熟慮,全面考量長遠規劃等因素。
繼續配置代碼添加
選定了子域名或二級目錄后,還需在配置文件中添加特定指令。這一步驟常常是出錯的高發區。不少初學者對代碼感到棘手,很容易出現誤寫或遺漏。代碼中的符號和字母必須確保精確無誤。
我曾在某個網絡技術團隊中,看到一位成員分享了他配置多個站點的心得。他講述了一個因代碼中小寫的字母誤寫成大寫而耗費數小時排查的教訓。因此,大家在執行這一步驟時務必格外小心。這個環節是在前一步的基礎上對多站點配置的深化,若處理不當,可能會導致站點出現諸多問題,例如數據同步失敗。
站點偽靜態規則配置
# 根據自己的實際修改下面的域名 log_format yourdomain.com '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; server { listen 80; # 根據自己的實際修改下面的域名 server_name yourdomain.com *.yourdomain.com; index index.html index.htm index.php default.html default.htm default.php; # 注意修改下面的網站目錄 root /mnt/wwwroot/yourdomain.com; #include wordpress.conf; #以下是 lnmp 1.0 的 wordpress.conf 規則,也就是上一行 include wordpress.conf 里面的 location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } } # wordpress.conf 規則 結束 location ~ .*.(php|php5)?$ { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fcgi.conf; } location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*.(js|css)?$ { expires 12h; } access_log /home/wwwlogs/huchangmeng.com.log huchangmeng.com; #ignored: “-” thing used or unknown variable in regex/rew rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /wp-admin/ permanent; if (-f $request_filename){ set $rule_2 1; } if (-d $request_filename){ set $rule_2 1; } if ($rule_2 = "1"){ #ignored: “-” thing used or unknown variable in regex/rew } rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) / last; rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ / last; rewrite /. /index.php last; }
WordPress的多站點模式下,不論是Nginx還是Apache環境,都少不了偽靜態規則的設置。在Nginx環境中,只需按照提供的規則進行修改即可,但這些規則并不簡單。據統計,2023年8月有30%的用戶在調整Nginx的偽靜態規則時遇到了問題。
若您在Apache環境下操作,需將提供的特定代碼替換至網站根目錄的.htaccess文件中原有代碼。值得注意的是,子域名和子目錄模式下的替換規則各不相同。只有熟練掌握不同環境下的偽靜態配置,才能有效提升網站在搜索引擎排名和用戶訪問體驗方面的表現。
多站點域名管理
在多站點操作模式中,域名管理功能相當強大。它允許使用主域名的二級域名,亦或選用其他域名。不過,這要求進行域名映射解析。舉例來說,成都一家小型的網絡公司,為了給海外客戶搭建多站點,由于對域名映射解析的步驟不太熟悉,整個過程耗費了他們大量時間。
進行域名解析操作時,須在注冊商處正確設置記錄,保證域名精確無誤地指向目標站點。同時,WordPress平臺上的配置也要相應調整,如此才能確保多個站點能借助不同域名順暢運行。
數據管理與同步
RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*.php)$ $1 [L] RewriteRule . index.php [L]
數據管理在多個站點間變得極為便捷,主站點就能輕松實現多站點的數據同步和管控。以一個大型新聞網站為例,它擁有眾多分站,熱門新聞可迅速傳播至各分站,有效降低了人力和時間投入。然而,數據備份同樣重要,一旦特殊數據丟失,恢復難度較大。我曾有一位朋友,他管理的動漫主題多站點就因一次意外未及時備份,導致部分原創資源更新記錄丟失,之后他不得不投入大量精力進行恢復。
你對WordPress的多站點功能有興趣嗎?不妨在評論區留下你的想法。同時,也歡迎你點贊并分享這篇文章。
RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L] RewriteRule . index.php [L]
作者:小藍
鏈接:http://m.huanchou.cn/content/8016.html
本站部分內容和圖片來源網絡,不代表本站觀點,如有侵權,可聯系我方刪除。