Nginx没有将www重定向到www

时间:2017-03-06 13:34:48

标签: php redirect nginx

所以我这个网站暂时无法透露网址。所以我会将这个问题称为www.example.com。

我希望任何尝试访问我的网站以重定向到HTTPS :: //www.example.com。然而,这种情况并非如此。我设法让它将http重定向到https。

如果我转到example.com,它会重定向到www.example.com,但如果我尝试使用example.com/videos之类的任何其他路线,它只会重定向到https://example.com/videos而不是https://www.example.com

这是我的nginx配置文件:

server{

    listen 80;
    server_name example.com www.example.com;
    rewrite ^/(.*) https://www.example.com/$1 permanent;
}

server {
    listen 443 ssl;

    server_name example.com www.thevirtualpornwebsite.com;
    root /var/www/example_folder/public;


    index index.php index.html index.htm index.nginx-debian.html;


    ssl_certificate /home/example_user/example.com.chained.crt;
    ssl_certificate_key /home/example_user/example.com.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';


    location / {
        rewrite ^/(.*)/$ /$1 permanent;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
}

如果有人能提供帮助那就太棒了!

1 个答案:

答案 0 :(得分:0)

如果检查HTTP服务器配置,则应该看到重写规则

rewrite ^/(.*) https://www.example.com/$1 permanent;

这基本匹配任何给定的URL,然后将此匹配作为参数$1传递到新位置(检查正则表达式)。

如果删除此参数,则应该完成所需的操作:

rewrite ^/.* https://www.example.com/ permanent;