Nginx跳转至www主机

公司域名www.test.com,有些客户会通过test.com访问,
之前是在nginx的server_name配置段配置两个域名。
DNS解析记录将两个域名都解析到此主机IP。

开发那边要求test.com是要跳转至www.test.com。
配置nginx的页面跳转:

1、if+rewrite

if ($host *~ 'test.com')
{
    rewrite ^/(.*)$ http://www.test.com/$1 permanent;
}
# 或者
if ($host = 'test.com')
{
    rewrite ^/(.*)$ $1 permanent;
}

缺点一:if匹配影响nginx的效率
缺点二:*~ 匹配即test.com也匹配www.test.com
缺点三:利用wget去访问test.com,会经历很多此301的permanent,最后访问失败。

2、两个server配置

server {
    server_name test.com;
    return 301 $scheme://www.test.com$request_uri;
}

这种方式比较好

你可能感兴趣的:(Nginx跳转至www主机)