Nginx如何实现除指定路径外所有请求重定向至其他域名?
Nginx配置:仅保留指定路径服务,其余请求重定向到指定域名
要实现仅对/path/to/keep/路径提供服务,其余所有请求都重定向到example.com,你只需要在现有配置基础上补充一个匹配所有请求的location块即可,完整的正确配置如下:
server { root /var/www/my_example/html; index index.html; location /path/to/keep/ { try_files $uri $uri/ /index.html; } # 匹配所有未被上面location处理的请求,重定向到example.com location / { return 301 https://example.com/; } }
配置说明:
location /path/to/keep/:前缀匹配指定路径,处理该路径下的所有请求,try_files指令会先尝试访问请求的文件或目录,若不存在则返回index.html(适合Vue、React这类单页应用,静态站点可根据需求调整规则)。location /:这个块会匹配所有未被前面location匹配到的请求,return 301表示永久重定向到目标域名;如果需要临时重定向,将301改为302即可。- 注意:配置里的分号不能少,否则Nginx启动会报错,比如原来的
try_files行末尾要补上分号。
内容的提问来源于stack exchange,提问作者steveblue
相关产品推荐
相关产品推荐

