You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置条件Rewrite:排除/scan路径的域名重定向需求

Nginx 条件重定向配置实现方案

要实现仅当请求域名为dev.dm.li且路径不以/scan开头时才执行重定向,可以通过调整Nginx的location匹配优先级来实现,避免滥用if指令导致的潜在问题。以下是修改后的完整配置:

server {
  listen 80;
  server_name dev.domain.fr dev-web.domain.fr dev.dm.li;

  # 优先匹配dev.dm.li下以/scan开头的请求,直接代理到后端服务
  location ^~ /scan {
      proxy_pass http://ip:3001;
      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;
  }

  # 针对dev.dm.li域名下的其他路径,执行永久重定向
  if ($host = 'dev.dm.li') {
      rewrite ^/(.*)$ http://dev-web.domain.fr/$1 permanent;
  }

  # 其他域名(dev.domain.fr、dev-web.domain.fr)的请求默认代理到后端
  location / {
      proxy_pass http://ip:3001;
      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;
  }
}

配置说明:

  • location ^~ /scan:使用^~前缀确保该规则优先匹配所有以/scan开头的请求,这类请求会直接进入代理逻辑,不会触发后续的重定向规则。
  • 剩余的dev.dm.li请求会被if指令捕获,执行重定向到dev-web.domain.fr。
  • dev.domain.fr和dev-web.domain.fr的请求不受重定向规则影响,直接走根location的代理配置。

内容的提问来源于stack exchange,提问作者A. Floyd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:03:10