Regex 正则表达式匹配$request\u uri变量中的NGINX url段
希望在这里能对这个重定向过程有所了解 我希望重定向所有的URL,除了那些符合以下条件的URL (单页) 及 (具有此结构的许多页面) 这些是站点地图中唯一包含“foo”的URL,所以我试图简单地匹配它们 我首先需要检查另一个条件变量(我正在检查移动设备的用户代理)-除了包含“foo”的页面之外,所有页面都应该重定向到新域Regex 正则表达式匹配$request\u uri变量中的NGINX url段,regex,redirect,nginx,Regex,Redirect,Nginx,希望在这里能对这个重定向过程有所了解 我希望重定向所有的URL,除了那些符合以下条件的URL (单页) 及 (具有此结构的许多页面) 这些是站点地图中唯一包含“foo”的URL,所以我试图简单地匹配它们 我首先需要检查另一个条件变量(我正在检查移动设备的用户代理)-除了包含“foo”的页面之外,所有页面都应该重定向到新域 set $mobile_redirect NO; if (someconditionaluseragentstuff = someconditionaluseragentst
set $mobile_redirect NO;
if (someconditionaluseragentstuff = someconditionaluseragentstuff) {
set $mobile_redirect YES;
}
if ($request_uri ~ "foo") {
set $mobile_redirect NO;
}
if ($mobile_redirect = YES) {
rewrite ^ https://www.somemobiledomain.com$request_uri? redirect;
break;
}
location/
块通常是与先前未与另一个location
块匹配的URI相匹配的跳转。并使用0
和1
表示cleaner配置文件的真/假
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;
}
}