make子目录显示nginx中子域的内容

时间:2016-07-03 14:57:11

标签: wordpress nginx subdomain subdirectory proxypass

我想处理这个问题:

blog.example.com => example.com/blog

blog.example.com/xxx => example.com/blog/xxx

在两个示例中,blog子目录中没有任何内容,应该处理博客的代码位于子域中。我只是想显示上面显示的网址。

如此。我想转发(重定向而不更改url)子目录到子域。

有没有nginx配置呢?

2 个答案:

答案 0 :(得分:0)

您可以在NGINX配置中使用以下内容。

server {
    listen 80;
    server_name blog.example.com;

    location / {
        return 301 $scheme://example.com/blog$request_uri;
    }
}

server {
    listen 80;
    server_name example.com;

    location /blog/ {
        <your code goes here>
    }
}

这会将任何传入的请求转移到blog.example.com并重定向到example.com/blog以及请求的URI,例如。 blog.example.com/latest会重定向到example.com/blog/latest

答案 1 :(得分:0)

location = /blog {
    return 302 /blog/;
}
location /blog/ {
    proxy_pass http://blog.example.com/;
}

请注意proxy_pass中的/非常重要(如果没有/blog部分,请求中的location部分不会被删除。

https://serverfault.com/questions/562756/how-to-remove-the-path-with-an-nginx-proxy-pass/562850#562850提供了有关两个独立"without limits"声明的基本原理的更多详细信息。