通过NGINX配置或CloudFlareCDN重定向来拦截指定URL或转发到其他URL的参考解决方案

前言

有时候需要定向屏蔽网站的某些目录,如果从源站设置,还是相对麻烦的,尤其是进行了缓存之后,某些插件控制会无效,或者影响缓存效果。

此时可以考虑使用nginx或者cloudflarecdn来解决这个问题

NGINX配置拦截

如果你使用宝塔面板,若没有用反向代理,则直接在当前网站的配置文件编辑即可,若有用反向代理,则在反向代理的配置细则里面加即可,如果有开伪静态,也可以在那里改。

其实这个我去年就写过类似的网站  NGINX 在特定路径指定目标进行重定向操作:以独角数卡拦截中国大陆IP购买为例

可以通过 if ( $http_cf_ipcountry = “CN”) 来识别CF传来的IP

当然,如果你这个是最外层的NGINX了,没有套CDN,也可以用 Nginx + Ip2location 或GeoIP 的方法来识别来源IP

原理很简单,直接举例,照着改就行了

location /202209/6513.html {
#return 403;
return 302 https://96110.pages.dev/ChinaTelecom/CT;
}

比如这个,拦截特定URL,用302跳转到其他URL,或者直接403、500等状态码

注,可能需要学习 NGINX Location的相关知识,比如通配符,可阅读 https://blog.csdn.net/jy02149522/article/details/79066574

该方案可以部署在反代机器、中转机器上,CDN前后均可,更适合在CDN前面。

如果是有防盗链等情形,也可以参考我早期的文章

CloudFlare CDN配置拦截

CF CDN相关的链接还可以在博客内自行阅读,比如这两个Tag

目前CF有一个Beta中的批量重定向功能,可以实现这个方案。当然,远古的页面规则(已分离)、转换规则、WAF防火墙规则(不支持转发)也有类似的效果。

这个是以账号为单位而不是域名

规则写法和WAF差不多,比如要BAN中国和中转机

当然,也要提前准备好转发列表,支持CSV上传

这里可以填写进出2个URL,4种状态码,查询字符串、子域、子路径匹配、保留路径后缀等参数

比如把这个URL直接转发到反诈页面,从而实现按需求拦截。而且这个不会受到CF CDN缓存的影响,如果你在源站弄,则可能因为直接读缓存而没有效果。