[英]nginx www redirect to non-www with subdomain
How can i redirect from www to non www for this rule ~^(?\\w+).example.com ? 对于该规则〜^(?\\ w +)。example.com,我如何从www重定向到非www?
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name ~^(?<subdomain>\w+)\.example\.com$;
}
I try separate main domain redirect and all subdomains redirect but have recursive redirection for main domain. 我尝试使用单独的主域重定向和所有子域重定向,但是对主域具有递归重定向。
server {
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
server_name "~^www\.(.*)$" ;
return 301 $scheme://$1$request_uri ;
}
Then i try only 然后我只尝试
server {
server_name "~^www\.(.*)$" ;
return 301 $scheme://$1$request_uri ;
}
and that work for subdomains. 并且适用于子域。 But in main domain i have redirect for $request_uri without domain. 但是在主域中,我可以重定向到$ request_uri而不使用域。
One thing to remember is that if nginx
cannot find a matching server_name
it will use the default server. 要记住的一件事是,如果nginx
找不到匹配的server_name
,它将使用默认服务器。 And unless you define a default_server
, it will use the first server
block listening on the appropriate port. 并且除非定义default_server
,否则它将使用第一个server
块在适当的端口上进行侦听。 See this document for details. 有关详细信息,请参见此文档 。
Clearly example.com
does not match the regular expression ~^(?<subdomain>\\w+)\\.example\\.com$
, however, your current server
block works because it is the implicit default server. 显然example.com
与正则表达式~^(?<subdomain>\\w+)\\.example\\.com$
不匹配,但是,您当前的server
块有效,因为它是隐式默认服务器。
Regular expression server
blocks are evaluated in order, so place the www.
正则表达式server
块按顺序求值,因此放置www.
rule first so that www.example.com
is not treated as a subdomain. 请先执行规则,以免将www.example.com
视为子域。
Make the main server
block default explicitly so that it continues to handle example.com
. 将主server
块显式设置为默认,以便其继续处理example.com
。
server {
server_name "~^www\.(.*)$" ;
return 301 $scheme://$1$request_uri ;
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name ~^(?<subdomain>\w+)\.example\.com$;
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.