【技术教程】让页面中的http请求转为https请求

在 HTTPS 承载的页面上不允许出现 http 请求,一旦出现就是提示或报错

因此即使使用到的域名对http请求已经强制了https,但是在页面中浏览器对于http请求压根就不会发送,那么就必需替换页面上所有的http为https

于是从http协议入手,在响应header中添加upgrade-insecure-requests,即在php入口文件中添加:

1
header("Content-Security-Policy: upgrade-insecure-requests");

或着也可以在由前端在html页面中添加meta:

1
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

或者在nginx配置中进行header的添加:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
server {
        listen       443;
        server_name  www.example.com;
        error_log  /logs/nginx/error.log;
        root /var/www/www.example.com;
        index  index.php index.html index.htm;
        ssl on;
        ssl_certificate   cert/test/test.pem;
        ssl_certificate_key  cert/test/test.key;
        ssl_session_timeout 5m;
       
        #添加响应头
        add_header Content-Security-Policy "upgrade-insecure-requests'";
       


        location / {
                if (!-f $request_filename){
                        rewrite ^/(.*)$ /index.php?s=$1 last;
                        break;
                }
                limit_except GET POST DELETE PUT {
                        deny all;
                }
        }
……
}

从而让浏览器对页面中的所有http请求,都升级为https协议发送请求,从而省去了逐一修改url的协议的麻烦。

本博客 [ 星耀的个人博客 ] 内带有 原创 标签文章,均为星耀独立创作。

撰文不易,转载请注明文章来源并保留原文链接:本文转载自 星耀的个人博客

本文链接:https://www.xingyaox.com/course/171.html

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

发表评论

邮箱地址不会被公开。 必填项已用*标注

2条评论