技术分享:如何完全重写图片URL (by 烈火君)

时间:2017-4-21 作者:烈火君 分类: 技术

随着阿里的日益壮大,淘宝推出了2TB的图片储存空间,我们可以利用其空间来外链自己的一些图片到网站上展示,以减少高流量带来的费用,而且还支持 HTTPS 协议。但是,如果直接引用淘宝图片的URL,会导致网站权重流失,怎么办呢?下面烈火君就把完全重写图片URL的方法发布给大家。把淘宝图片的URL完成重写成自己的URL。

技术分享:如何完全重写图片URL (by 烈火君)
如何完全重写图片URL

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代码。


网站通过XHTML1.1严谨校验 网站通过CSS3.0严谨校验 网站通过CSS3.0严谨校验

网友看法

avatra
小周
2017-07-07 14:27
我的是阿怕奇服务器,跟着你这个写不成功呢的,最后访问http://test.tld/imgs/i4/TB2hCqxmB8lpuFjSspaXXXJKpXa_!!358272220.jpg
没有出来,显示404

发表看法