Nginx配置重定向www

时间:2013-11-19 09:05:03

标签: nginx subdomain config no-www

我无法搞清楚我的nginx配置。

我的配置应该强制使用https而不是www。允许使用某些子域 api.domain.com api.staging.domain.com 。最后提到的目前是在另一个conf文件中配置的,没有附在这里。

目前我的问题是,这似乎允许www。我需要将www重定向到没有www。子域www在dns配置中设置为cname。

有人能帮助我吗?

server {
        listen          54.00.00.00;
        server_name     54.00.00.00;
        rewrite         .* https://domain.com$request_uri permanent;
}
server {
        listen          80;
        return          301 https://$host$request_uri;
}
server {
        listen          443 default ssl;
        server_name     domain.com api.domain.com;
        root            /var/www/domain.com/current/web;

        ##
        # Certificate Settings
        ##

        ssl_certificate         /etc/nginx/ssl/domain.com.pem;
        ssl_certificate_key     /etc/nginx/ssl/domain.com.key;

1 个答案:

答案 0 :(得分:0)

问题在于server

server {
    listen          80;
    return          301 https://$host$request_uri;
}

匹配所有服务器,即使是www的服务器,如果您要求http://www.example.com$host将是www.example.com,那么您最终会重定向到{{}带有https的1}}版本。

如果你想捕捉所有并且仍然从拥有它的人那里剥离www我建议最好在服务器名称中使用正则表达式

www