我有一个 WordPress 多站点网络,并且我正尝试将其一次一个站点地迁移到我的新服务器,因此我的 nginx 服务器上有一个反向代理,指向每个子站点的旧服务器。
当我做:
location /oldsite1 {
proxy_pass http://myoldip;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /oldsite2 {
proxy_pass http://myoldip;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
我可以通过 mydomain.com/oldsite1 和 mydomain.com/oldsite2 访问网站的前端,但是当我转到 mydomain.com/oldsite1/wp-admin 时,所有样式表和 JS 文件都返回 404。/oldsite2 也是如此。
当我做
location ^~ /oldsite1 {
proxy_pass http://myoldip;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location ^~ /oldsite2 {
proxy_pass http://myoldip;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
一切似乎都运行正常,没有问题,但我不确定“^~”实际上是在做什么来修复它,或者是否有理由我不应该这样做。
文档指出:
如果最长匹配的前缀位置有“^~”修饰符,则不检查正则表达式。
我不确定这种行为与位置路径前没有修饰符有何不同以及原因。