正则表达式匹配来自$ request_uri变量的NGINX url段

时间:2017-10-11 23:56:39

标签: regex redirect nginx

希望对此重定向过程有所了解

我希望重定向所有与以下内容匹配的网址:

https://www.something.com/about-us/foo/(单页) 和 https://www.something.com/foo/some-arbitrary-segment/(许多具有此结构的网页)

这些是包含“foo”的站点地图中唯一的网址,因此我尝试简单地匹配。

我首先需要检查另一个条件变量(我正在检查移动设备的用户代理) - 除了包含“foo”的那些页面之外的所有页面都应重定向到新域。

[StartDate]

1 个答案:

答案 0 :(得分:0)

location /块通常是与先前未与另一个location块匹配的URI匹配的漏洞。并使用01来表示更清晰的配置文件的真/假。

Rembember 301是永久重定向,302是临时的

set $mobile_redirect 0;

if ($http_user_agent ~ "netscape navigator") {
  set $mobile_redirect 1;
}

# Specific URIs /about-us/foo/ and /foo/*
location ~ ^/(about-us/foo/$|foo/)  {
  # Do nothing
}

# Every other URI
location / {
  if ($mobile_redirect) {
    return 301 https://website.com$request_uri;
  }
}