Regex nginx location使用任何子域和任何路径重定向除特定域以外的所有域

Regex nginx location使用任何子域和任何路径重定向除特定域以外的所有域,regex,nginx,redirect,Regex,Nginx,Redirect,我正在尝试使用location regex进行重定向。我希望所有内容都从examplesite.com重定向到404 exept,并具有所有可能的路径,subdomain.examplesite.com应重定向到我的服务器 examplesite.com redirect https://m.examplesite.com redirect www.examplesite.com/something redirect everything else redirect to 404 这是我的配置

我正在尝试使用location regex进行重定向。我希望所有内容都从examplesite.com重定向到404 exept,并具有所有可能的路径,subdomain.examplesite.com应重定向到我的服务器

examplesite.com redirect
https://m.examplesite.com redirect
www.examplesite.com/something redirect
everything else redirect to 404
这是我的配置:

location ~ ^(?!(.?)examplesite.com/?(.*)) {
return 404;
}

location / {
return 302 $scheme://192.168.1.1/index.html; #this is a local web server
}

这肯定是错误的,因为它重定向了我尝试404的每个examplesite.com。

我想你可以试试这个^((?!examplesite.com)。*$-任何没有examplesite.com的url都可以重定向到404,如果url中有examplesite.com,那么不管它的位置如何,它都不会匹配。

我想你可以试试这个^((?!examplesite.com)。*$-任何没有examplesite.com的url都可以重定向到404,如果url中有examplesite.com,那么无论其位置如何,它都不会匹配。

这似乎不起作用,所以我回到使用dnsmasq来实现这一点。我尝试了location~*^((?!examplesite.com)。*$和location^((?!examplesite.com)两种方法)*$奇怪。我自己测试了这个正则表达式模式,它在本地和在线正则表达式模式匹配器中都运行良好。我再次尝试了它。它在nginx中不工作,我还测试了前3个在线正则表达式测试器,但在那里也不匹配。我的配置如下:location^((?!examplesite.com)。*${return 404;}location/{我还尝试删除了'everything Other'位置,并留下了您的建议和这个:location^((?examplesite.com))*$,但它也不起作用。我没有dns重定向,并且将配置更改为其他正在起作用的配置,但这不是我想要的,除非我通过dnsmasq执行。这可能是我的错误,因为我得到了奇怪的结果。http站点被重定向到本地服务器,而https站点都得到相同的响应,这是一个认证错误。我没有知道你是否可以从重定向和404重定向中获得这一点,所以我无法测试它。你对regex的看法是正确的,在nginx测试网站上,它按预期工作。我尝试了升级投票,但我没有足够的分数。这似乎不起作用,所以我回到使用dnsmasq来实现这一点。我尝试了两个位置~*^((?!examplesite.com)。)*$and location^((?!examplesite.com)。*$Strange。我自己测试了这个正则表达式模式,它在本地和在线正则表达式模式匹配器中运行良好。我再次尝试了它。它在nginx中不起作用,我还测试了前3个在线正则表达式测试器,但它在那里也不匹配。我的配置如下:location^((?!examplesite.com)。)*${return 404;}location/{我还尝试删除了'everything Other'位置,并留下您的建议和以下内容:location^((?examplesite.com))*$,但它也不起作用。我没有dns重定向,并且将配置更改为其他正在起作用的配置,但这不是我想要的,除非我通过dnsmasq执行。这可能是我的错误,因为我得到了奇怪的结果。http站点被重定向到本地服务器,而https站点都得到相同的响应,这是一个认证错误。我没有我知道你是否可以从重定向和404重定向中获得这一点,所以我无法测试它。你对正则表达式的看法是正确的,在nginx测试网站上,它可以按预期工作。我试图提高投票率,但我还没有足够的分数。