LNMP是Linux、Nginx、MySQL和PHP的组合,用于搭建动态网站或web应用。为了防止其他网站直接链接到你的图片、视频或其他资源文件,你可以采取以下几种方法来实现防盗链:
valid_referers模块:在Nginx配置文件中,你可以使用valid_referers模块来限制访问来源。例如,你可以允许来自你自己网站的请求访问资源文件:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
valid_referers none blocked yourdomain.com www.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}
将yourdomain.com替换为你的实际域名。这样,只有来自yourdomain.com和www.yourdomain.com的请求才能访问这些资源文件。
你可以创建一个PHP脚本来检查HTTP_REFERER头,以确定请求是否来自允许的来源。如果请求来自不允许的来源,可以返回一个错误消息或重定向到其他页面。
<?php
$allowed_domains = array('yourdomain.com', 'www.yourdomain.com');
$referer = $_SERVER['HTTP_REFERER'];
$is_allowed = false;
foreach ($allowed_domains as $domain) {
if (strpos($referer, $domain) !== false) {
$is_allowed = true;
break;
}
}
if (!$is_allowed) {
header('HTTP/1.0 403 Forbidden');
echo 'Forbidden';
exit;
}
// 正常处理请求
将此脚本放在资源文件之前,以便在执行其他操作之前检查请求来源。
有一些第三方服务提供了防盗链功能,例如Cloudflare。这些服务可以帮助你保护网站资源,防止未经授权的访问。
总之,你可以根据自己的需求选择合适的方法来实现LNMP网站的防盗链功能。