强制https到http nginx子域

时间:2014-06-25 06:44:45

标签: ssl nginx url-rewriting

我知道这个问题已经讨论了很多次,但我花了几个小时都没有成功。我有一个子域名,可以将任何www重定向到无www,并希望它也可以将任何https重定向到http。

这是我的nginx vhost:

server {
        listen 80;
        server_name www.stat.domain;
        return 301 http://stat.domain;
}

server {
        listen 80;
        root /home/www/public/;
        index index.php index.html index.htm;
        server_name stat.domain.net;
        location / {
        try_files $uri $uri/ /index.php;
        }
  location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }
}

我仍然不知道为什么有人可以手动更改网址,从浏览器上的http到https。不应该被禁止,特别是当网站没有SSL时。

任何想法如何强制https到http?

1 个答案:

答案 0 :(得分:2)

  

我仍然不知道为什么有人可以手动更改网址,从浏览器上的http到https。不应该被禁止,特别是当网站没有SSL时。

从这句话中我了解到您的网站没有任何或没有正确的SSL。 在这种情况下

  • 在尝试访问之前,浏览器应该如何知道没有SSL?即便如此,它应该如何知道这是一个永久性和预期的错误,以便任何重试都不起作用?如果浏览器不知道,它应该如何阻止用户输入https-URL?
  • 如果您没有https,那么您将如何重定向?重定向需要一个连接,它可以在其中发出重定向,因此您站点上没有SSL表示没有https连接,因此没有来自https连接的重定向。