WordPress 子目錄多個網站,其實 WordPress 官方有多站點功能,但是開啟後部分擴展性會限制,可能你們沒有遇到,但是我遇到了,這裡我詳細記錄一下子目錄做網站的操作方法。
這篇文章 29 號就寫了,一直沒有發布。。。
這裡的測試環境為 nginx+php7.4+mysql5.7,一個常規的安裝環境,並且開啟多域名訪問。
開啟多域名訪問在wp-config.php 的 define( 'WP_DEBUG', false ); 下添加代碼即可!
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
子目錄網站也想開啟多域名就不能使用這個方法了,設 blog 為你的子目錄網站,代碼就是:
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST'] . '/blog');
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] . '/blog');
當然這裡修改就要到 blog/wp-config.php 這裡修改。
教程開始:#
當前你的網站根目錄已經有了一個 WordPress 網站,創建一個目錄 blog,上傳一個新的 WordPress 安裝包上去,訪問域名 + blog 安裝即可!
目前 WordPress 已經完全支持到子目錄安裝,以前是不支持的,直接安裝就好了。
注意在填寫數據庫的時候,數據庫前綴需要修改,當前已經有了一個站點是 wp,那麼你就修改成 wp2 或者 wp3 依此類推。
偽靜態規則#
目前主站點的偽靜態規則是:
location /
{
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
加入我們的子目錄網站後,偽靜態規則就是:
location /
{
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location /blog
{
try_files $uri $uri/ /blog/index.php?$args;
}
rewrite /blog/wp-admin$ $scheme://$host$uri/ permanent;
如果你不只有一個,那麼就需要按需添加你的偽靜態規則。
這樣兩個網站就是獨立的數據庫和程序,此場景可以應用於不同模板之間的互通,不用分開管理。
有能力的還可以研究一下兩個網站共用一個用戶數據表等擴展功能。
我覺得最主要的應用場景為大型網站,文章數量多了查詢起來就卡頓,把每個分類單獨支開成一個網站。
這樣數據表就小多了,查詢起來也快一點,並且多了豐富的模板擴展性。