nginx 重定向包括子域、www 和参数

Posted

技术标签:

【中文标题】nginx 重定向包括子域、www 和参数【英文标题】:nginx redirect include subdomain, www and parameters 【发布时间】:2013-03-15 13:23:56 【问题描述】:

我想用 nginx

重定向
www.anysubdomain.domain.com?parameters , anysubdomain.com?parameters   

www.domain.com?parameteres&anysubdomain

任何子域或参数都是可选的

我试过了

server_name ~^(?<subdub>.*).\domain\.com$;
rewrite      ^ http://www.domain.com/?mode=$subdub permanent;

但这是错误的。

【问题讨论】:

【参考方案1】:
server_name ~^(www\.)?(?<subdub>.+)\.domain\.com$;

此正则表达式将匹配“www.”的零个或一个外观。

您在使用“.\domain”的正则表达式中也有错误。它应该是“\.domain”。

我也换了

(?<subdub>.*)

(?<subdub>.+)

确保子域名不为空。这样 server_name 将不会匹配“www.domain.com”本身,这可能会导致重定向循环。

【讨论】:

以上是关于nginx 重定向包括子域、www 和参数的主要内容,如果未能解决你的问题,请参考以下文章

NGINX重定向所有请求将URL与参数匹配到子域

.htaccess:将主域重定向到https:// www,子域重定向到https://(不带www)

Dockerized Nginx将不同的子域重定向到同一页面

域重定向到www时如何将www子域重定向到非www

PHP:将主域重定向到https:// www,子域重定向到https://(不带www)

Nginx 将子域转换为路径组件而不进行重定向