AI摘要
本文介绍了如何在Typecho博客中设置本地附件防盗链,以防止媒体文件被其他网站盗用。步骤包括开启永久链接功能和在.htaccess文件中添加相应的规则。规则包括禁止空Referer请求、允许特定Referer请求、拒绝非白名单请求并返回403错误。
在搭建博客时,确保媒体文件(如图片、视频等)不会被其他网站盗用,是非常重要的。为了避免附件被盗链,我们可以通过配置 .htaccess
文件来实现防盗链功能。下面是如何在 Typecho 中设置本地附件防盗链的详细教程。
步骤 1:开启永久链接功能
- 登录到 Typecho 后台。
- 在后台菜单中,进入 设置。
- 找到 永久链接 部分,你将看到几种不同的链接结构选项,以及是否使用地址重写功能
- 选择一种你喜欢的结构,开启地址重写功能并保存更改。
注意:永久链接的设置并不会直接影响防盗链的实现,但如果永久链接没有启用,URL 重写规则将不会生效,因此这是一个必需的步骤。
步骤 2:防盗链设置
确保在 Typecho 的根目录下存在 .htaccess 文件。在 .htaccess 文件中,添加以下内容来启用防盗链功能:
# ========== 防盗链开始 ==========
# 拒绝空 Referer(如你希望允许空 Referer,请注释掉下一行)
RewriteCond %{HTTP_REFERER} ^$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp|webp|avif|svg|mp4|avi|mov|mkv|flv|wmv|webm|mp3|wav|ogg|aac|flac|pdf|doc|docx|ppt|pptx|xls|xlsx|txt|rtf|odt|zip|rar|7z|tar|gz|bz2|exe|msi|apk|dmg|pkg|iso|js|css|woff|woff2|ttf|otf|eot)$ - [F,L]
# 允许以下网站的 Referer(白名单)
RewriteCond %{HTTP_REFERER} ^https?://(www\.)?(oini\.de|google\.com|baidu\.com|sogou\.com|bing\.com) [NC]
RewriteRule .* - [L]
# 非白名单 Referer 请求上述文件,返回 403 Forbidden
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?(oini\.de|google\.com|baidu\.com|sogou\.com|bing\.com) [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp|webp|avif|svg|mp4|avi|mov|mkv|flv|wmv|webm|mp3|wav|ogg|aac|flac|pdf|doc|docx|ppt|pptx|xls|xlsx|txt|rtf|odt|zip|rar|7z|tar|gz|bz2|exe|msi|apk|dmg|pkg|iso|js|css|woff|woff2|ttf|otf|eot)$ - [F,L]
# ========== 防盗链结束 ==========
# 可选:设置403错误页面
ErrorDocument 403 /403.html
规则解析
禁止空 Referer 的请求:
RewriteCond %{HTTP_REFERER} ^$ [NC] RewriteRule .*\.(gif|jpg|jpeg|png|bmp|webp|avif)$ - [F,L]
允许特定 Referer 的请求:
RewriteCond %{HTTP_REFERER} ^https?://(www\.)?(oini\.de|google\.com|baidu\.com|sogou\.com|bing\.com) [NC]
允许来自白名单网站(如 Google、Baidu 等)的图片请求。
拒绝非白名单的请求并返回 403 错误:
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?(oini\.de|google\.com|baidu\.com|sogou\.com|bing\.com) [NC] RewriteRule .*\.(gif|jpg|jpeg|png|bmp|webp|avif)$ - [F,L]
如果请求的 Referer 不在白名单中,则返回 403 错误,拒绝访问图片。