![Nginx 子域名 + 子文件夹到子文件夹](https://linux22.com/image/763129/Nginx%20%E5%AD%90%E5%9F%9F%E5%90%8D%20%2B%20%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E5%88%B0%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9.png)
目标是使用 example.com/blog 和所有帖子、类别和作者从 blog.example.com/blog 加载页面。
location /blog(/.*)$ {
rewrite ^ $1 break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://blog.example.com/blog$1;
proxy_ssl_server_name on;
}
出现 500 错误
答案1
如果 URI 未经改变地传递(例如/blog/foo
-> /blog/foo
),则不需要 a rewrite
,也不需要选修的URI 部分proxy_pass
。请参阅这个文件了解详情。
您的语句语法location
错误。您使用的正则表达式没有适当的运算符~
或~*
。但是,您不需要使用正则表达式来匹配所有以 开头的 URI /blog
。请参阅这个文件了解详情。
例如:
location ^~ /blog {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://blog.example.com;
proxy_ssl_server_name on;
}