javascript - 网站更改为https后该怎么处理链接问题?
阿神
阿神 2017-04-11 09:08:13
[JavaScript讨论组]

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

阿神
阿神

闭关修行中......

全部回复(7)
PHPz

直接使用 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跳转呗;

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号