我有这个正则表达式:
^(.*)$ https://mysite.com$1
它匹配所有内容然后转换为:
anything.mysite.com/foo --- > mysite.com/foo
我想做类似的事情,但只有当任何单词与2个特定单词不同时,我才会在子域与string1或string2不同时执行该重写。所以:
string1.mysite.com/query ---> https://string1.mysite.com/query
foo.mysite.com/query ---> https://mysite.com/query
答案 0 :(得分:0)
由于您使用的是Nginx,因此可以在server
块中添加以禁止匹配这两个子域:
server_name ~^(?!string1|string2)[^.]+\.mysite\.com$;
(?!string1|string2)
否定前瞻除了string1
或string2
之外的所有内容
答案 1 :(得分:0)
你可以用外观来做这件事
要删除您不想要的部分,只需替换为$1$2
# ^(.*?(?://))?.*?(?<!\bstring1)(?<!\bstring2)\.(mysite\.com\b.*?)$
^
( # (1 start)
.*?
(?: // )
)? # (1 end)
.*?
(?<! \b string1 )
(?<! \b string2 )
\.
( # (2 start)
mysite\.com \b
.*?
) # (2 end)
$