WordPress多站點開啟和配置記錄 Nginx和Apache多站點偽靜態(tài)規(guī)則

麥子 定制開發(fā)192字數(shù) 2534閱讀8分26秒閱讀模式

近期遇到不少的網(wǎng)友在玩轉WordPress多站點模式,我們所謂的多站點模式可能是在一臺服務器或者多臺服務器安裝多個WP程序解析不同的域名實現(xiàn)的多站點模式。但是對于他們來說是一個WordPress程序通過配置修改進行多站點和多域名的設置共享一個數(shù)據(jù)庫,那具體如何設置的呢?

/* Multisite settings */
define( 'WP_ALLOW_MULTISITE', true );

我們需要在WordPress程序的WP-CONFIG.PHP中進添加代碼,開啟多站點模式。

添加之后,刷新WP后臺,我們可以看到會多一個"工具"-"網(wǎng)絡設置"。

然后我們選擇是子域名和還二級目錄作為配置。然后看到需要繼續(xù)在配置文件加入他給的代碼。

配置完畢之后,我們還需要給站點配置偽靜態(tài)規(guī)則重新設置。

這是Nginx規(guī)則,我們根據(jù)需要修改:

# 根據(jù)自己的實際修改下面的域名
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;
# 根據(jù)自己的實際修改下面的域名
server_name yourdomain.com *.yourdomain.com;
index index.html index.htm index.php default.html default.htm default.php;
# 注意修改下面的網(wǎng)站目錄
root /mnt/wwwroot/yourdomain.com;

#include wordpress.conf;
#以下是 lnmp 1.0 的 wordpress.conf 規(guī)則,也就是上一行 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 規(guī)則 結束

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$ /$1wp-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).*) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
rewrite /. /index.php last;

}

我們看到,實際上多站點模式功能還是很強大的,我們可以用主域名的二級域名,也可以用其他域名,但是需要做映射解析。多站點模式,我們可以直接在主站點管理和同步數(shù)據(jù)到多站點。

附帶Apache偽靜態(tài)規(guī)則:

如果你的服務器使用的是Aache環(huán)境,使用下面的代碼替換網(wǎng)站根目錄下的 .htaccess 里面的所有代碼

子域名模式下的規(guī)則代碼:

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]

子目錄模式下的規(guī)則代碼:

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]

文章參考來自:https://www.itbulu.com/wp-multi-site.html

投上你的一票
 
  • 本文由 麥子 發(fā)表于 2024年11月11日 08:10:30
  • 轉載請務必保留本文鏈接:http://bjj.org.cn/wpallow-multisite.html
  • WordPress多站點