Nginx中return无法实现URL重定向,proxy_pass遇相对路径失效
问题描述
我需要实现标准的「URL重定向」功能,参考location return相关有效资料后,使用了以下Nginx配置:
location ~ ^/?[RrWwNn]?[0-9]+$ { rewrite ^/?[Rr]?([0-9]+)$ /relation/$1 break; rewrite ^/?[Ww]?([0-9]+)$ /way/$1 break; rewrite ^/?[Nn]?([0-9]+)$ /node/$1 break; # proxy_pass https://www.openstreetmap.org; return 301 https://www.openstreetmap.org; }
但访问时返回**404 Not Found**。
关于注释的proxy_pass说明
这并非URL或rewrite规则问题,因为proxy_pass原本可以正常工作。但如果要保留自身域名,OpenStreetMap页面HTML中的相对路径(src和href属性)会请求自身域名下不存在的文件,示例如下:
<!DOCTYPE html> <html lang="en" dir="ltr"> ... <script src="/assets/application-2b1976907d32c6d0274def6df7df5970c274bc239f2cbd39ab43bd94cb828407.js"></script> ... <link rel="stylesheet" href="/assets/screen-ltr-dccece0ade0dcdf51378c9d06264575b38c6bb23351144314efde0956d6883cf.css" media="screen" /> ...
内容的提问来源于stack exchange,提问作者Peter Krauss
相关产品推荐
相关产品推荐

