WordPress Nginx环境开启和配置多站点功能(伪静态规则重新修改)
导读:这几天老蒋在调试某一款WordPress插件的时候发现激活之后无法生效,最后发现这款插件只兼容WordPress多站点模式,而我们常规安装的WP程序都是单站点模式的,如果需要启动多站点模式是需要开启的。在这篇文章中,老蒋开启WordPres...
这几天老蒋在调试某一款WordPress插件的时候发现激活之后无法生效,最后发现这款插件只兼容WordPress多站点模式,而我们常规安装的WP程序都是单站点模式的,如果需要启动多站点模式是需要开启的。在这篇文章中,老蒋开启WordPress多站点功能看看,虽然用不上,好歹也一起学习一下。
/* Multisite settings */define( 'WP_ALLOW_MULTISITE', true );
我们需要在WordPress程序的WP-CONFIG.PHP中进添加代码。
添加之后,刷新WP后台,我们可以看到会多一个"工具"-"网络设置"。
然后我们选择是子域名和还二级目录作为配置。然后看到需要继续在配置文件加入他给的代码。
配置完毕之后,我们还需要给站点配置伪静态规则重新设置。
这是Nginx规则,我们根据需要修改:
# 根据自己的实际修改下面的域名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$ /$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;
}
老蒋看到,实际上多站点模式功能还是很强大的,我们可以用主域名的二级域名,也可以用其他域名,但是需要做映射解析。多站点模式,我们可以直接在主站点管理和同步数据到多站点。
附带Apache伪静态规则:
如果你的服务器使用的是Aache环境,使用下面的代码替换网站根目录下的 .htaccess 里面的所有代码
子域名模式下的规则代码:
RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]# add a trailing slash to /wp-adminRewriteRule ^wp-admin$ wp-admin/ [R=301,L]RewriteCond %{
REQUEST_FILENAME}
-f [OR]RewriteCond %{
REQUEST_FILENAME}
-dRewriteRule ^ - [L]RewriteRule ^(wp-(content|admin|includes).*) $1 [L]RewriteRule ^(.*\.php)$ $1 [L]RewriteRule . index.php [L]
子目录模式下的规则代码:
RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]# add a trailing slash to /wp-adminRewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]RewriteCond %{
REQUEST_FILENAME}
-f [OR]RewriteCond %{
REQUEST_FILENAME}
-dRewriteRule ^ - [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]RewriteRule . index.php [L]
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: WordPress Nginx环境开启和配置多站点功能(伪静态规则重新修改)
本文地址: https://pptw.com/jishu/665519.html