欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

javascript - 网站更改为https后该怎么处理链接问题?

程序员文章站 2022-04-09 19:22:12
...
网站之前并没有开启https协议。
所有的链接都是绝对链接,几乎没有相对链接。
现在的情况是开启https后所有的绝对链接失效,图片失效。因网站页面较多,请问各位有没有什么办法可以批量更改链接的?

回复内容:

网站之前并没有开启https协议。
所有的链接都是绝对链接,几乎没有相对链接。
现在的情况是开启https后所有的绝对链接失效,图片失效。因网站页面较多,请问各位有没有什么办法可以批量更改链接的?

直接使用 WEB 服务器做永久重定向 ,NGINX 为例

server{
    listen 80;
    server_name test.com;
    #告诉浏览器2年有效期内只准用 https 访问
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    #永久重定向到 https 站点
    return 301 https://$server_name$request_uri;
}

如果实在没有权限设置配置,那么写个脚本批量替换一下罗,或者把代码下载到本地,然后用IDE批量替换一下。
修改前请做好备份
类似功能脚本

sed -i "s/http:\/\/www.old.com/https:\/\/www.old.com/g" `grep http://www.old.com -rl /path/to/project`

https://imququ.com/post/sth-a...

历史悠久的大站在往 HTTPS 迁移的过程中,工作量往往非常巨大,尤其是将所有资源都替换为 HTTPS 这一步,很容易产生疏漏。即使所有代码都确认没有问题,很可能某些从数据库读取的字段中还存在 HTTP 链接。
而通过 upgrade-insecure-requests 这个 CSP 指令,可以让浏览器帮忙做这个转换。启用这个策略后,有两个变化:
页面所有 HTTP 资源,会被替换为 HTTPS 地址再发起请求;
页面所有站内链接,点击后会被替换为 HTTPS 地址再跳转;
跟其它所有 CSP 规则一样,这个指令也有两种方式来启用,具体格式请参考上一节。需要注意的是 upgrade-insecure-requests 只替换协议部分,所以只适用于 HTTP/HTTPS 域名和路径完全一致的场景。

一般编译软件都有一键替换的功能。

重写url应该可以

你的网站不会是全静态页面吧?如果不是那就改模板,还有,URL一般是通过一个指定函数生成的吧,改函数就可以了,图片路径,如果是数据库里的就批量替换一下就好了,页面图片文件,模板改一下就好了嘛

现在知道封装的重要性了吧

403跳转呗;