如何在子域下运行子目录多站点安装

时间:2013-12-17 作者:George Reith

我在一个运行Nginx作为后端服务器的VPS上。

我想设置一个子目录多站点WordPress安装,但我希望所有子站点也位于一个子域下。例如:

我的主要网站:

domain.com
子网站:

clients.domain.com/site1
clients.domain.com/site2
clients.domain.com/site3
我意识到我可以在clients.domain.com 并将其用作多站点主页domain.com 已经在运行WordPress了,这让我觉得在管理和磁盘空间方面效率很低,尤其是我只希望在该子域的根目录下提供登录页面。

我还意识到我可以将所有请求重定向到clients.domain.comdomain.com 但是,我不希望通过访问子网站或其相关文件domain.com/site1. 子网站应将其父网站识别为domain.com.

进行此操作的最佳方法是什么?

3 个回复
最合适的回答,由SO网友:George Reith 整理而成

这个问题已经解决了,请注意,我在写这篇文章时使用的是Wordpress 3.8,如果您来自未来,这些插件可能无法与当前版本兼容,请先检查兼容性。

插件WP Multi Network 提供此功能。它基本上允许您创建嵌套的多站点网络。我的主要网络位于domain.com 并创建了另一个名为Clientsclients.domain.com.

现在domain.com 指向我的主站点,但我从Clients 网络将采用以下格式的URLclients.domain.com/sitename/. 所有网络共享同一数据库。

我为Nginx使用了标准的wordpress子目录多站点配置(http://codex.wordpress.org/Nginx) 并使用插件Nginx helper 生成我的map{} 规则。

我希望这能帮助其他有这个问题的人。现在,您可以在不同的子域(或不同的域)上创建多个多站点网络,共享一个数据库和管理面板。

SO网友:David

您可以使用名为sunrise.php 为了改变方式,WordPress将请求映射到网络中的博客上。我解释了一个可能的解决方案this answer. 关键是分析您的请求clients.domain.com/site1/some/post/ 进入域clients.domain.com 和路径/site1 并将其与列进行比较domainpathwp_blogs 桌子这样,您就可以决定如何将子域和路径作为博客的标识符来处理。使用这些数据,您必须设置一些全局变量,如$current_blog$current_site.

使用子域安装时,不必更改管理GUI。只需使用域创建博客clients.domain.com 之后,转到博客的编辑屏幕并更改路径。这不是很舒服,但很管用。

当然,当使用不同的路径级别作为博客的根路径时,可能会遇到路径冲突。因为sunrise.php 被称为非常早,博客路径将始终胜过永久链接路径。

SO网友:user42826

以下是一个非常简单的解决方案:

为客户端安装和配置WP multisite子目录。领域com安装Domain Mapping plugin

  • 创建所有子站点
  • 域将其中一个子站点映射到域。com
  • 结束

    相关推荐

    多站点WordPress nginx上传的文件抛出404

    我在/blog 在nginx服务器上运行的子目录。除了可以正确上传但无法通过url访问的文件外,其他一切正常。有关文件的配置部分是:location ~ ^/files/(.*)$ { try_files /blog/wp-content/blogs.dir/$blogid/$uri /blog/wp-includes/ms-files.php?file=$1 ; access_log off; log_not_found off; expires max; }&#