我想处理这个问题:
blog.example.com => example.com/blog
blog.example.com/xxx => example.com/blog/xxx
在两个示例中,blog子目录中没有任何内容,应该处理博客的代码位于子域中。我只是想显示上面显示的网址。
如此。我想转发(重定向而不更改url)子目录到子域。
有没有nginx配置呢?
答案 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"
声明的基本原理的更多详细信息。