服務器之家:專注于服務器技術及軟件下載分享
分類導航

DEDECMS|帝國CMS|Discuz|PHPCMS|Wordpress|ZBLOG|ECSHOP|

服務器之家 - 建站程序 - Wordpress - WordPress中開啟多站點支持及Nginx的重寫規則配置

WordPress中開啟多站點支持及Nginx的重寫規則配置

2019-11-11 14:04水脈煙香 Wordpress

這篇文章主要介紹了WordPress中開啟多站點支持及Nginx的重寫規則配置方法,在同一個WordPress軟件中開啟的多個站點如果需要綁定不同域名的話也可以使用WordPress MU Domain Mapping插件,需要的朋友可以參考下

在Wordpress3.0及以上版本可以直接使用多站點,它可以:

1、只安裝一個Wordpress程序即可創建多個wordpress站點,可以是子域名也可以是子目錄。

2、可以有獨立的博客后臺,獨立的博客地址。

3、管理員可設置開放哪些主題給站點使用。

4、管理員可配置插件給每個站點使用。

5、多個站點之間共用“用戶數據庫表”,也就是表 wp_usermeta 和 wp_users,其他的為獨立數據庫表。

WordPress多站點的配置方法:

1、首先,備份網站的數據庫,以防出現意外時恢復(一般可忽略)。

2、打開WordPress的根目錄下的wp-config.php文件,在
require_once(ABSPATH . 'wp-settings.php');
前面加上以下代碼:

define('WP_ALLOW_MULTISITE',true);

3、進入WordPress后臺,”工具”-> 點擊”配置網絡”

ps:如果您要使用二級域名的形式,可以到“設置”->“常規”里面,把站點地址(URL)的www.去掉。

WordPress中開啟多站點支持及Nginx的重寫規則配置

4、點擊安裝后,按照提示做好相關的配置

5、配置好,再次進入后臺,在頭部將出現“我的站點”->“管理網絡”的選項菜單,接下來您可以管理或者創建站點,也可以開啟主題或者插件給其他站點使用。

WordPress中開啟多站點支持及Nginx的重寫規則配置

6、如果要給站點綁定其他域名,可以安裝 WordPress MU Domain Mapping 插件。

nginx多站點rewrite(重寫)規則
wordpress多站點模式可以被應用在多種方式上。其中最常用的是在”子目錄”模式或者”二級域名”模式上。
Nginx提供了兩種特殊的指令:”x-accel-redirect”和”map”,使用這兩個指令可以使得wordpress多站點的網絡服務實現偽靜態功能。

wordpress多站點使用子目錄重寫規則:
配置中zzvips.com修改為自己的站點域名。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
map $uri $blogname{
 ~^(?P<blogpath>/[^/]+/)files/(.*) $blogpath ;
}
 
map $blogname $blogid{
 default -999;
 
 #Ref: http://wordpress.org/extend/plugins/nginx-helper/
 #include /var/www/wordpress/wp-content/plugins/nginx-helper/map.conf ;
}
 
server {
 server_name zzvips.com ;
 
 root /var/www/zzvips.com/htdocs;
 index index.php;
 
 #多站點配置
 location ~ ^(/[^/]+/)?files/(.+) {
 try_files /wp-content/blogs.dir/$blogid/files/$2 /wp-includes/ms-files.php?file=$2 ;
 access_log off; log_not_found off; expires max;
 }
 
 #avoid php readfile()
 location ^~ /blogs.dir {
 internal;
 alias /var/www/zzvips.com/htdocs/wp-content/blogs.dir ;
 access_log off; log_not_found off; expires max;
 }
 
 if (!-e $request_filename) {
 rewrite /wp-admin$ $scheme://$host$uri/ permanent;
 rewrite ^(/[^/]+)?(/wp-.*) $2 last;
 rewrite ^(/[^/]+)?(/.*\.php) $2 last;
 }
 
 location / {
 try_files $uri $uri/ /index.php?$args ;
 }
 
 location ~ \.php$ {
 try_files $uri =404;
 include fastcgi_params;
 fastcgi_pass php;
 }
 
 #此處可以繼續添加偽靜態規則
}

wordpress多站二級域名重寫規則:
配置中zzvips.com修改為自己的站點域名。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
map $http_host $blogid {
 default  -999;
 
 #Ref: http://wordpress.org/extend/plugins/nginx-helper/
 #include /var/www/wordpress/wp-content/plugins/nginx-helper/map.conf ;
 
}
 
server {
 server_name zzvips.com *.zzvips.com ;
 
 root /var/www/zzvips.com/htdocs;
 index index.php;
 
 location / {
 try_files $uri $uri/ /index.php?$args ;
 }
 
 location ~ \.php$ {
 try_files $uri =404;
 include fastcgi_params;
 fastcgi_pass php;
 }
 
 #WPMU Files
  location ~ ^/files/(.*)$ {
    try_files /wp-content/blogs.dir/$blogid/$uri /wp-includes/ms-files.php?file=$1 ;
    access_log off; log_not_found off;  expires max;
  }
 
 #WPMU x-sendfile to avoid php readfile()
 location ^~ /blogs.dir {
 internal;
 alias /var/www/zzvips.com/htdocs/wp-content/blogs.dir;
 access_log off; log_not_found off; expires max;
 }
 
 #此處可以繼續添加偽靜態規則
}

備注

“map”部分可以應用于小站點。大站點的多站點應用可以使用 nginx-helper wordpress插件 。
如果想進一步優化wordpress的性能可以使用Nginx的fastcgi_cache,當使用fastcgi_cache配置需要在編譯nginx時加上ngx_cache_purge模塊以及使用wordpress的緩存插件等等

延伸 · 閱讀

精彩推薦
法甲赛程积分