WordPress 3.0以上的版本支持直接开启多站点模式,这样一来,你可以在一个后台切换多个站点进行管理。

最近打算折腾一个主题演示站,给每个主题使用独立的子站点来搭建演示,如果是Apache环境,配置就比较容易,但是倡萌使用的是 Nginx,花了大量的时间测试了N多网络上的伪静态规则,最终找到了完美的解决方法。下面就分享下Linux下 Apache 和 Nginx 两种环境开启多站点的方法。Windows系统环境直接靠边站吧。

开启网络配置

在网站根目录下的 wp-config.php 添加:

  1. define(‘WP_ALLOW_MULTISITE’, true);

配置多站点模式

刷新网站后台,访问 工具 > 配置网络,根据自己的需要选择“子域名”或者“子目录”模式,然后点击“安装”:

multsite-wpdaxue_com

只有新安装的WordPress,并且绑定了域名,这时候才可以选择“子域名”模式。

如果你选择是的“子域名”,安装后,请将下面的代码添加到网站根目录下的 wp-config.php 下:

  1. define(‘MULTISITE’, true);
  2. define(‘SUBDOMAIN_INSTALL’, true);
  3. define(‘DOMAIN_CURRENT_SITE’, ‘yourdomain.com’);
  4. define(‘PATH_CURRENT_SITE’, ‘/’);
  5. define(‘SITE_ID_CURRENT_SITE’, 1);
  6. define(‘BLOG_ID_CURRENT_SITE’, 1);

如果选择的是“子目录”,则添加:

  1. define(‘MULTISITE’, true);
  2. define(‘SUBDOMAIN_INSTALL’, false);
  3. define(‘DOMAIN_CURRENT_SITE’, ‘yourdomain.com’);
  4. define(‘PATH_CURRENT_SITE’, ‘/’);
  5. define(‘SITE_ID_CURRENT_SITE’, 1);
  6. define(‘BLOG_ID_CURRENT_SITE’, 1);

添加伪静态规则

Apache 规则

如果你的服务器使用的是Aache环境,使用下面的代码替换网站根目录下的 .htaccess 里面的所有代码

子域名模式下的规则代码:

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^index\.php$ – [L]
  4. # add a trailing slash to /wp-admin
  5. RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
  6. RewriteCond %{REQUEST_FILENAME} -f [OR]
  7. RewriteCond %{REQUEST_FILENAME} -d
  8. RewriteRule ^ – [L]
  9. RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
  10. RewriteRule ^(.*\.php)$ $1 [L]
  11. RewriteRule . index.php [L]

子目录模式下的规则代码:

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^index\.php$ – [L]
  4. # add a trailing slash to /wp-admin
  5. RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
  6. RewriteCond %{REQUEST_FILENAME} -f [OR]
  7. RewriteCond %{REQUEST_FILENAME} -d
  8. RewriteRule ^ – [L]
  9. RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
  10. RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
  11. RewriteRule . index.php [L]

Nginx 规则

倡萌测试的是 CentOS 5.4 32位系统,服务器使用的是 军哥 LNMP 1.0 安装包配置的。

假设你的网站为 yourdomain.com,那么你可以编辑这个配置文件:

  1. vi /usr/local/nginx/conf/vhost/yourdomain.com.conf

最后一个 } 的前面添加下面的代码:

  1. #ignored: “-” thing used or unknown variable in regex/rew
  2. rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /\wp-admin/ permanent;
  3. if (-f $request_filename){
  4. set $rule_2 1;
  5. }
  6. if (-d $request_filename){
  7. set $rule_2 1;
  8. }
  9. if ($rule_2 = “1”){
  10. #ignored: “-” thing used or unknown variable in regex/rew
  11. }
  12. rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /\ last;
  13. rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /\ last;
  14. rewrite /. /index.php last;

以上的规则对于 子域名 和 子目录 模式都正常使用,但是,如果你选择的是 子域名 模式,还需要找到:

  1. server_name yourdomain.com;

添加一个泛域名 *.yourdomain.com,如下:

  1. server_name yourdomain.com *.yourdomain.com;

保存文件,然后重启服务器:

  1. /root/lnmp restart

然后在你的域名管理那里添加一条泛域名 *.yourdomain.com 解析到主机IP(或者分别解析你即将要使用的子域名到主机IP),这样一来,创建子域名站点时,就可以正常访问了。

附:以下是 Nginx 下最完整的多站点配置代码,实际使用时,请根据自己的实际修改域名及网站目录,同时建议删除含有中文的行:

  1. # 根据自己的实际修改下面的域名
  2. log_format yourdomain.com ‘$remote_addr – $remote_user [$time_local] “$request” ‘
  3. ‘$status $body_bytes_sent “$http_referer” ‘
  4. ‘”$http_user_agent” $http_x_forwarded_for’;
  5. server
  6. {
  7. listen 80;
  8. # 根据自己的实际修改下面的域名
  9. server_name yourdomain.com *.yourdomain.com;
  10. index index.html index.htm index.php default.html default.htm default.php;
  11. # 注意修改下面的网站目录
  12. root /mnt/wwwroot/yourdomain.com;
  13. #include wordpress.conf;
  14. #以下是 lnmp 1.0 的 wordpress.conf 规则,也就是上一行 include wordpress.conf 里面的
  15. location / {
  16. if (-f $request_filename/index.html){
  17. rewrite (.*) $1/index.html break;
  18. }
  19. if (-f $request_filename/index.php){
  20. rewrite (.*) $1/index.php;
  21. }
  22. if (!-f $request_filename){
  23. rewrite (.*) /index.php;
  24. }
  25. }
  26. # wordpress.conf 规则 结束
  27. location ~ .*\.(php|php5)?$
  28. {
  29. try_files $uri =404;
  30. fastcgi_pass unix:/tmp/php-cgi.sock;
  31. fastcgi_index index.php;
  32. include fcgi.conf;
  33. }
  34. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  35. {
  36. expires 30d;
  37. }
  38. location ~ .*\.(js|css)?$
  39. {
  40. expires 12h;
  41. }
  42. access_log /home/wwwlogs/huchangmeng.com.log huchangmeng.com;
  43. #ignored: “-” thing used or unknown variable in regex/rew
  44. rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /\wp-admin/ permanent;
  45. if (-f $request_filename){
  46. set $rule_2 1;
  47. }
  48. if (-d $request_filename){
  49. set $rule_2 1;
  50. }
  51. if ($rule_2 = “1”){
  52. #ignored: “-” thing used or unknown variable in regex/rew
  53. }
  54. rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /\ last;
  55. rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /\ last;
  56. rewrite /. /index.php last;
  57. }

修改固定链接结构

主站点

这里说的主站的,默认就是最初安装时的主域名,比如 yourdomain.com

如果是 子域名 模式,你可以直接在这个主站的的 设置 > 固定链接 直接修改即可。

如果是 子目录 模式,主站点的文章都自动在链接中添加了 /blog/,如果你直接在这个子目录站点的 设置 > 固定链接 设置结构,是无法去除 /blog/ 的,而且在 lnmp 环境下,直接修改会自动添加 index.php。

解决办法是,访问 所有站点,点击主站点的编辑:

multsite1-wpdaxue_com

切换到“设置”标签,找到 Permalink Structure ,在这里直接填写 固定链接结构(比如 /%postname%.html),保存即可。这样就可以去除 /bolg/ ,同时不会添加 index.php,非常完美。

子站点

子站点直接在这个站点的后台 设置 > 固定链接 那里设置即可。

到这里,一切基本的设置都完成啦!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

https://www.88531.cn/?p=37428


新软师兄 » WordPress 开启多站点(含Apache和Nginx伪静态规则)
50T免费网盘资源大集合【持续更中~~~~】:点击查看

dase kand pornhan.mobi xvideo desi gay pcso 2pm result today pinoytvfriends.com where i can watch bad romeo كلام فى النيك wfporn.com قصص محارم حديثة busporn porngugu.mobi indian sexx vedios sex ka video noticieroporno.com himachal pradesh sex com
nero hentai hentaitgp.com ламия хентай www.mom xxx.com alohaporn.me sahara knite mature fucking tubepatrolporn.com bhabi sex indian girl sex gotporn.mobi xnxx family strocks ang probinsyano july 20 2022 full episode youtube pilipinoteleserye.com ano ang pambansang sasakyan ng pilipinas
احلي سكس محارم pornxporn.org نيك فلاحى multi.xnxx alohaporn.net telugu sex chart سكس قصيرات arabysexy.org نيك نقاب www assames sex com umora.info desi sexy bhabi 8teenx bukaporn.com india hot sex videos