http强制跳转到https

之前我说了设置如何添加https,因为https比http要安全一点,所以我想让所有从http访问我的网站的人强制跳转到https,这就需要添加以下:

 server {

listen 80;

server_name my.nicky1605.com;

rewrite ^/(.*) permanent;??? #记得修改成你的网站
}

 

也就是再添加一个虚拟机,80端口一个,443端口一个server。

但是有些程序只会给你往端口上转发,不会自动修正http为https,这样的程序还不少,例如phpmyadmin:

遇到这样的程序我们需要修改Nginx.conf配置文件,在443的server的fastcgi字段中添加一个语句:

 fastcgi_param HTTPS on; #attention!#

例如

???????? location ~ .*\.(php|php5)?$
??????????? {
??????????????? try_files $uri =404;
??????????????? fastcgi_pass? unix:/tmp/php-cgi.sock;
??????????????? fastcgi_index index.php;
??????????????? fastcgi_param HTTPS on; #attention!#
??????????????? include fcgi.conf;
??????????? }

 

这样就可以了。

网友评论9

  1. 4楼
    ellon:

    解决了

    2013-11-15 23:03 [回复]
  2. 地板
    Nicky:

    都可以,加到最后吧,但是你要先看看这几行代码是不是已经存在了,还要记得换行

    2013-11-15 20:04 [回复]
    • ellon:

      ##### NOTE: Replace /shop/ with the relative web path of your catalog in the "Rewrite Base" line below:

      Options +FollowSymLinks
      RewriteEngine On
      RewriteBase /

      上面是我htaccess的内容一部分 那我放在最后面会不会出事??之前我放在RewriteBase /之后我的网站就出大问题了

      2013-11-15 22:04 [回复]
      • Nicky:

        不明白你的意思。如果我给你代码有了你就不用写了,把那个301那一行标到后面就行了,如果没有就要填上

        2013-11-15 22:10 [回复]
        • ellon:

          主页可以打开,内页的话提示说我太多重定向了,打开错误

          2013-11-15 22:58 [回复]
  3. 板凳
    ellon:

    你有在linux 的vps kloxo面板上操作过吗?现在我就是没法找到如何把http都指向到https上

    2013-11-15 17:56 [回复]
    • Nicky:

      kloxo应该用的是Apache吧,你可以在网站目录下建个.htaccess文件,然后添加以下规则:

      RewriteEngine On
      RewriteCond %{HTTPS} !on [NC]
      RewriteRule (.*) https://abc.com%{REQUEST_URI} [R=301,NC,L]

      记得把文章中的abc.com换成你的域名

      2013-11-15 18:10 [回复]
  4. 沙发
    ellon:

    如何设置一个网站的http强制到https上,你上的是在哪里修改代码的?看不懂

    2013-11-15 00:54 [回复]

发表评论

表情
还能输入210个字