htAccess 阻止并允许来自同一域名的站点



我运行一项服务,为第三方网站提供css文件,脚本和图像,www.myfantasyleague.com 这是梦幻足球的足球托管服务,最近他们在过去几年中经历了一些变化。

我试图阻止他们服务器上的某些网站欺诈性地使用我的作品,同时允许在同一域上购买我的作品的人能够使用我的作品,并且不会被HTA文件阻止。创建足球网站后,MFL会为其提供永久服务器号和5位数的代码,该代码现在每年都不会更改,并且保持不变。这是MFL搜索足球一词的链接,您可以看到有很多网站,如果您单击几个站点,它们都有不同的5位ID,有些具有不同的服务器ID。

我想开始阻止的网站将是下面的这个网站 URL,MFL 域现在可以选择使用 http 和 https,所以获得这两种协议都是有想法的。

网站到阻止示例

https://www67.myfantasyleague.com/2019/home/63928#0

允许示例的网站

http://www51.myfantasyleague.com/2019/home/46087#0

在myfantasyleague域名上,他们在URL的末尾为每个网站提供了自己的5位数唯一代码,而且许多在不同的服务器ID上,如www67和www51,你会看到这两个链接一个是https,一个是https。

过去我曾经在下面使用此代码,今天它仍然有效,但是一旦我将其添加到我的根访问文件中,它就会取出两个站点,而我不能拥有它,因为我希望能够控制哪些站点被服务器号和 5 位数的联盟 ID 阻止,如果可能的话。

我尝试过的代码有效,但会杀死该域名中的所有站点。

RewriteEngine On
RewriteCond %{HTTP_REFERER} https?://(www.)?www(67).myfantasyleague.com.+(63928) [NC,OR]
RewriteRule .*.(jpe?g|gif|bmp|png|js|css)$ [L]

也许我可以将要阻止的 URL 转换为实际 IP 并尝试阻止 IP?

我不知道还能尝试什么,甚至可能是不可能的,我不知道。我感谢任何和所有的反馈。 谢谢

尽管您发布的模式当然可以改进,但没有理由"阻止"来自该主机的所有引用,如果这些站点发送引用标头......请记住,此类标头是可选的,可以轻松修改,因此任何人都可以解决您基于该标头实现的限制。 另一方面,阻止IP意味着您阻止来自该主机的所有服务,据我所知,这不是您想要的。"www"前缀的数字添加表示服务运营商使用分片来平衡请求负载,这是一种古老而过时的方法。您可以期望它随时更改,无论是针对单个站点还是一般站点,因此最好不要依赖它。您只对引用 URL 末尾的数字 ID 感兴趣。

但是,您发布的该方法的问题是实际的重写规则:它在语法上无效。所以我希望它会引发内部错误,从而阻止所有请求。我会建议这样的东西:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !/63928$ [OR]
RewriteCond %{HTTP_REFERER} !/63927$ [OR]
RewriteCond %{HTTP_REFERER} !/63926$
RewriteRule ^ [F,NC]

这将通过提及其数字ID来主动将特定站点列入白名单,并通过发送"禁止"标头来阻止所有其他请求。

请注意,我实际上没有测试上面的代码,它可能包含一些您可能需要修复的小故障。对于这些事情,访问 http 服务器错误日志文件非常重要。不确定你是否在你的情况下有它...

最新更新