我看到Nginx的HttpRewriteModule documentation有一個例子來重寫WWW前綴的域名到非www前綴的域名:Nginx的重寫無www前綴的域名到www前綴的域名
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}
我怎樣才能做相反的事情 - 將一個非www前綴域重寫爲www前綴域?我想也許我可以做如下的事情,但Nginx不喜歡嵌套的if語句。
if ($host !~* ^www\.) { # check if host doesn't start with www.
if ($host ~* ([a-z0-9]+\.[a-z0-9]+)) { # check host is of the form xxx.xxx (i.e. no subdomain)
set $host_with_www www.$1;
rewrite ^(.*)$ http://$host_with_www$1 permanent;
}
}
而且我想這對任何域名的工作,而無需顯式地告訴Nginx的重寫domain1.com - > www.domain1.com,domain2.com - > www.domain2.com等,因爲我有大量的域名需要重寫。
如何使用這個沒有? – pahnin 2016-08-01 10:49:43