1.获取原图链接

上传一张图片文件到淘图,得到以下链接:

https://img.alicdn.com/imgextra/i4/358272220/TB2hCqxmB8lpuFjSspaXXXJKpXa_!!358272220.jpg

2.新建302跳转PHP代码

根据URL写一个名为i4.php的302状态码跳转页,内容如下

<?php
    if(!empty($_GET['s'])){
        $url='https://img.alicdn.com/imgextra/i4/358272220/'.$_GET['s'];
    }else{
        $url='404.JPG';//没有参数时显示默认图片
    }
    header("Location:".$url);
?>

3.测试跳转代码

保存到网站根目录后访问如下格式的链接:(这里我以自定义域名 https://shota.vip/ 为例)

https://shota.vip/i4.php?s=TB2hCqxmB8lpuFjSspaXXXJKpXa_!!358272220.jpg

就可以看到外链的图片,其中,红色代码部分为外链的文件名,但是这样的链接为动态,不利于搜索引擎的抓取和优化。我们可以利用web释义引擎来重写成静态URL。

4.利用web释义引擎来重写URL

nginx引擎写法;编辑所属站点nginx.conf文件

rewrite "imgs/i4/(.+)$" /i4.php?s=$1;

apache引擎写法;编辑所属站点.htaccess文件

RewriteRule imgs/i4/(.+)$ img/i4.php?id=$1 [L,NC]

5.直接引用图片

保存引擎的配置文件并重启服务后,得到以下最终链接,这样就完全把淘宝图片的链接重写成了我们自己的域名链接,可以直接引用。

https://shota.vip/imgs/i4/TB2hCqxmB8lpuFjSspaXXXJKpXa_!!358272220.jpg

6.感谢光网烈火编辑部雷雨提供PHP代码。

参考:https://lighttp.com/?f=80

重写外部图片URL,变成自己的URL的更多相关文章

  1. 将canvas画布内容转化为图片(toDataURL(),创建url)

    将canvas画布内容转化为图片(toDataURL(),创建url) 总结 1.现在的浏览器都支持右键另存为图片的方法来将canvas画布内容转化为图片 2.在代码里面可以通过toDataURL() ...

  2. 基于.NetCore开发博客项目 StarBlog - (17) 自动下载文章里的外部图片

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

  3. heightCharts改变图表内图标的样式:链接外部图片

    series: [{ name: '东京', marker: { symbol: 'url(https://www.highcharts.com/demo/gfx/sun.png)'     //链接 ...

  4. 【详细、开箱即用】.NET企业微信回调配置(数据回调URL和指令回调URL验证)

    前言: 前段时间因为公司业务需求,需要将微信小程序与企业微信对接通,也就是把小程序绑定到对应的企业微信账号下,在该企业微信的用户可以将该小程序绑定到工作台中,然后可以在工作台中打开该小程序并授权.不过 ...

  5. URL详解与URL编码

    作为前端,每日与 URL 打交道是必不可少的.但是也许每天只是单纯的用,对其只是一知半解,随着工作的展开,我发现在日常抓包调试,接口调用,浏览器兼容等许多方面,不深入去理解URL与URL编码则会踩到很 ...

  6. 【转】关于URL编码/javascript/js url 编码/url的三个js编码函数

    来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),e ...

  7. HTTP 请求方式: GET和POST的比较当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

    什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request ...

  8. 相对URL拼接为绝对URL的过程

    URL有两种方式:绝对的和相对的. 绝对URL中包含有访问资源的所需的全部信息 举一个例子: <HTML> <HEAD><TITLE>Joe's Tools< ...

  9. [转帖]在RDLC中使用外部图片

    原文链接:http://blog.csdn.net/rock870210/article/details/4559962 在RDLC中使用外部图片 2009-09-16 19:08 3416人阅读 评 ...

随机推荐

  1. react中的传参方式

    react是一个SPA模式,即组件嵌套租,在一个单页面的应用中组件间的数值传递是必不可少的,主要的传参方式大致有一下几种: 1,在挂载的地方给组件传参 ReactDOM.rander(<a na ...

  2. SqlSugar GridView aspnetpager 分页排序

    HTML页面 <%@ Register assembly="AspNetPager" namespace="Wuqi.Webdiyer" tagprefi ...

  3. Flask框架基础--第一篇

    1.flask框架和其他几种框架的优缺点对比 Django : 优点 - 大而全所有组件都是有组织内部开发高度定制化 教科书级别的框架 缺点 - 大到浪费资源,请求的时候需要的资源较高 Flask : ...

  4. Thread类中start()方法喝run()方法有什么不同?

    答:当调用start()方法时会启动一个新创建的线程,然后在start()内部调用run()方法.这和直接调用run()方法不同.直接调用run()方法只是在原来的线程中调用,没有创建新的线程.只有调 ...

  5. node.js学习5--------------------- 返回html内容给浏览器

    /** * http服务器的搭建,相当于php中的Apache或者java中的tomcat服务器 */ // 导包 const http=require("http"); cons ...

  6. MySQL从本地向数据库导入数据

    本文来自:https://www.cnblogs.com/lettuce-u/p/10715795.html(自己收藏看) 在localhost中准备好了一个test数据库和一个pet表: mysql ...

  7. Oracle学习DayTwo

    一.创建表和管理表 1.表名和列名的命名规则 必须以字母开头必须在 1–30 个字符之间必须只能包含 A–Z, a–z, 0–9, _, $, 和 #必须不能和用户定义的其他对象重名必须不能是Orac ...

  8. shell编程规范

    1 脚本名以.sh结尾,名称尽量见名之意,比如ClearLog.sh Clear_Log.sh clearlog.sh SerRestart.sh Ser_Restart.sh;2 尽量使用UTF-8 ...

  9. 转:vim模式下报错E37: No write since last change (add ! to override)

    故障现象: 使用vim修改文件报错,系统提示如下: E37: No write since last change (add ! to override) 故障原因: 文件为只读文件,无法修改. 解决 ...

  10. asp.net 获取 repeater checkbox 值

    webform中获取repeat控件列表下的checkbox选中的值: 码农上代码: public static string getSelectedIDs(Repeater Rpt_) { stri ...