代码之家  ›  专栏  ›  技术社区  ›  user1803975

如何通过nginx config在域交换后提供旧的xml站点地图

  •  3
  • user1803975  · 技术社区  · 6 年前

    我最近从交换了一个站点的域扩展。xyz到。com和我在我的nginx配置中使用了一个规则来管理从旧域到新域的301流量。

    server {
        listen 8080;
        server_name example.xyz www.example.xyz;
        return 301 https://www.example.com$request_uri;
      }
    

    然而,我想继续以站点地图为例。xyz/站点地图。xml

    是否有一个规则我可以实施,将优先于301只为一个单一的位置?站点地图可以是一个静态文件,因此我可以使用别名,但不确定如何停止仅对该url生效的301?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Richard Smith    6 年前

    移动 return 语句转换为 location / 块然后您可以添加 location = 块以匹配单个URI。例如:

    server {
        listen 8080;
        server_name example.xyz www.example.xyz;
    
        location / {
            return 301 https://www.example.com$request_uri;
        }
        location = /sitemap.xml {
            root /path/to/enclosing/directory;
        }
    }
    

    看见 this document 有关详细信息。