如何将 HTTP 链接自动跳转到 HTTPS

发布于 2019-12-01 13:22:57 字数 2016 浏览 4133 评论 0

全站开启安全的 SSL 链接,那以前的非安全链接如何处理,一个好的方案是做 301 跳转,如果一条一条链接的跳转,人都要疯的,不过我们可以在服务器配置,全站 301 跳转到安全链接。

Apache 版本

如果需要整站跳转,则在网站的配置文件的 <Directory> 标签内,键入以下内容:

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]

如果对某个目录做 https 强制跳转,则复制以下代码:

RewriteEngine on
RewriteBase /yourfolder
RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

如果只需要对某个网页进行 https 跳转,可以使用 redirect 301 来做跳转!

Nginx 版本

在配置 80 端口的文件里面,写入以下内容即可。

server {
    listen       80;
    server_name  localhost;
    rewrite ^(.*)$ https://$host$1 permanent;   

    location / {
        root   html;
        index  index.html index.htm;
    }
}

Tomcat 和 IIS 参考单页面跳转。

JavaScript 版本

单独页面通用代码段:以下方法较适合指定某一个子页单独 https,在需要强制为 https 的页面上加入以下代码进行处理 http 跳转 https。

<script>
var url = window.location.href;
if (url.indexOf("https") < 0) {
    url = url.replace("http:", "https:");
    window.location.replace(url);
}
</script>

在需要强制为 http 的页面上加入以下代码进行处理 https 跳转 http

<script>
function redirect(){  
    var loc = location.href.split(':');
    if(loc[0] == 'https'){
        location.href = 'http:'+loc[1];  
    }
}                     
onload = redirect  
</script>

PHP 版本

PHP 页面跳转,添加在网站 php 页面内

if ($_SERVER["HTTPS"] <> "on"){
    $xredir="https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
    header("Location: ".$xredir);
}

http 跳转 https 的方法较多,以上仅供参考。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

遂心如意

文章 0 评论 0

5513090242

文章 0 评论 0

巷雨优美回忆

文章 0 评论 0

junpengz2000

文章 0 评论 0

13郎

文章 0 评论 0

qq_xU4RDg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文