如何在多域环境中将非www重定向到nginx中的www

时间:2017-04-18 08:11:11

标签: nginx web-hosting linode

我在服务提供商处注册了多个域,并使用nginx在linode上托管。

域名示例是www.example.com(不是example.com)

所有域名都可以正常运行,但如果没有它,页面就无法加载。

In curl -I http://example.com 

结果

curl: (6) Could not resolve host http://example.com

我每个单独有3个A / AAAA记录

blank    IP
mail     IP
www      IP

在我的/etc/nginx/sites-available

server {
        listen 80;
        listen [::]:80;
        server_name example.com www.example.com; 
        access_log /var/log/nginx/example.com.log;
        error_log /var/log/nginx/example.com-error error;

        root /var/www/examplecom/public;
        index index.html index.php;

        location ~ \.php?$ {
            try_files $uri =404;
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php-main.socket;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors on;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            #Prevent version info leakage
            fastcgi_hide_header X-Powered-By;
        }
}

server {
    listen 80;
    server_name example.com;
    return 301 $scheme://www.example.com$request_uri;
}

我也尝试过将第二个服务器块写在最上面但结果相同。

请立即提供指导/帮助。

1 个答案:

答案 0 :(得分:0)

谢谢你们回复。

顺便说一下,当我将linode设置中的域名从www.example.com更改为example.com时问题得到了解决