Answers:
domain.com之前的额外期限有何意义?目标是从网址中删除www吗?如果是这样,这应该可以解决问题:
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}
别忘了:sudo /etc/init.d/nginx restart
加载
资料来源:NGINX Wiki
相当多的技巧。
性能明智的最快方法是
server {
server_name www.domain.com;
rewrite ^ http://domain.com$request_uri permanent;
}
您可以保存一个正则表达式匹配项以及两个捕获,还可以使用哈希表来查找匹配的服务器块,从而获得nginx的优势。
另外,您不需要重新启动nginx-只需重新加载,谁会想要比所需时间更长的停机时间?
您可以使用正则表达式服务器名称(请参阅http://nginx.org/en/docs/http/server_names.html#regex_names):
server {
listen 80;
listen 443;
server_name ~^www\.(\w+)\.domain\.com$
location / {
rewrite ^ $scheme://$1.domain.com$request_uri permanent;
}
}
在您拥有数百个领域之前,Martin F的解决方案很好。但是,我建议您采用其他方式-在www.joe.domain.com上提供该应用程序,然后从joe.domain.com重定向。相当确定这是在RFC中。