首页 新闻 会员 周边

如何使用Python实现网页链接转发

0
[待解决问题]

因为我的博文中的图片全部是存放在Github图床中,并使用jsdelivr进行加速访问,而现在jsdelivr失效了,导致我博客中的所有图片链接失效了

我现在有个想法, 使用自己的服务器,实现 访问 http://xxx.xxx.com/{user}{store}/***.jpg 后连接到服务器的脚本, 进行一个请求转发, 在服务器里将请求转发给 https://cdn.jsdelivr.net/gh/{user}{store}/***.jpg 进行一个加速访问.

也就是 假设我的域名为 www.hello.com

访问我的域名 www.hello.com 自动跳转到 www.baidu.com

实现只更换服务器的加速链接, 博客内所有图片都可正常访问的功能.

无奈我个人的网络编程基础还很薄弱, 要如何实现这个功能, 望有前辈能够指点

假文艺青年。的主页 假文艺青年。 | 菜鸟二级 | 园豆:202
提问于:2022-05-18 11:10
< >
分享
所有回答(1)
0

您可以使用Python的Flask框架来实现这个功能,具体步骤如下:

安装Flask:在终端中输入以下命令安装Flask

pip install Flask
创建Flask应用程序:在项目文件夹中创建一个名为app.py的Python文件,并添加以下代码:

python

from flask import Flask, redirect, url_for, request

app = Flask(name)

@app.route('/path:filename')
def redirect_image(filename):
user = 'your_user'
store = 'your_store'
return redirect(f'https://cdn.jsdelivr.net/gh/{user}{store}/{filename}', code=302)

if name == 'main':
app.run(debug=True, host='0.0.0.0', port=80)
这里的your_user和your_store是您在Github上存储图片的用户名和存储库名称,如果您的图片存储在其他地方,可以根据情况更改。

运行应用程序:在终端中输入以下命令运行应用程序

python app.py
配置Web服务器:将Web服务器配置为将所有请求都转发到该应用程序。

如果您使用的是Apache服务器,则可以使用以下配置文件:

apache

<VirtualHost *:80>
ServerName www.hello.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
如果您使用的是Nginx服务器,则可以使用以下配置文件:

nginx

server {
listen 80;
server_name www.hello.com;
location / {
proxy_pass http://127.0.0.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
这些配置文件都将所有的请求都转发到应用程序中,应用程序会将请求重定向到jsdelivr加速的地址。

这样,当您的博客中的图片链接失效时,访问您的域名就会自动跳转到您的应用程序,并将请求重定向到jsdelivr加速的地址,使您的图片能够正常访问。

Technologyforgood | 园豆:5575 (大侠五级) | 2023-04-10 21:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册