【问题标题】:nginx configuration for serving static content on each subsite of Wordpress subdomain multisite用于在 Wordpress 子域多站点的每个子站点上提供静态内容的 nginx 配置
【发布时间】:2020-06-13 09:38:09
【问题描述】:

Wordpress 多站点(子域)是这样的:

  • 根域:xxxx.com
  • 子网站 1:a.xxxx.com
  • 子网站 2:b.xxxx.com
  • 子网站 3:c.xxxx.com

我想为每个子站点添加子目录(提供静态内容), 它看起来像这样:

  • xxxx.com/z/
  • a.xxxx.com/z/
  • b.xxxx.com/z/
  • c.xxxx.com/z/

xxxx.com/z/ 中的静态内容默认正确服务,我只需要创建一个名为 /z/ 的文件夹,并在那里添加内容, 但是我怎样才能使其他子站点下的其他 /z/ 也正确地提供内容?那可能吗? (每个子站点的静态内容都不同,尽管它们都被命名为 /z/

现有 nginx 配置文件的一部分:

    server {
    access_log   /var/log/nginx/access.log;
    error_log    /var/log/nginx/error.log;
    root /var/www/htdocs;
       server_name xxxx.com *.xxxx.com;

    index index.php index.html index.htm;

    # Redis NGINX CONFIGURATION
    set $skip 0;
    # POST requests and URL with a query string should always go to php
    if ($request_method = POST) {
            set $skip 1;
    }
    if ($query_string != "") {
            set $skip 1;
    } 

【问题讨论】:

    标签: wordpress nginx multisite static-site


    【解决方案1】:

    这不可能仅通过一个服务器定义来实现,因为资产的内容不同,/var/www/htdocs 下的文件夹也会不同。您可以将以下服务器与 rewrite 语句一起使用来实现您的目标(您还需要创建 a,b,c 文件夹)

    server {
        access_log   /var/log/nginx/access.log;
        error_log    /var/log/nginx/error.log;
        root /var/www/htdocs;
        server_name a.xxxx.com;
    
        rewrite ^/z/(.*)$ /a/$1 last;
    }
    
    server {
        access_log   /var/log/nginx/access.log;
        error_log    /var/log/nginx/error.log;
        root /var/www/htdocs;
        server_name b.xxxx.com;
    
        rewrite ^/z/(.*)$ /b/$1 last;
    }
    
    server {
        access_log   /var/log/nginx/access.log;
        error_log    /var/log/nginx/error.log;
        root /var/www/htdocs;
        server_name c.xxxx.com;
    
        rewrite ^/z/(.*)$ /c/$1 last;
    }
    

    如果您只想使用一台服务器执行此操作,则需要更改 rewrite 语句以依赖于请求的域。像这样的

    server {
        access_log   /var/log/nginx/access.log;
        error_log    /var/log/nginx/error.log;
        root /var/www/htdocs;
        server_name *.xxxx.com xxxx.com;
    
        rewrite ^/z/(.*)$ /$host/$1 last;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-08
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多