.htaccess “重写映射”无法阻止热链接

.htaccess “重写映射”无法阻止热链接,.htaccess,mod-rewrite,hotlinking,rewritemap,.htaccess,Mod Rewrite,Hotlinking,Rewritemap,我试图通过在txt文件中动态重写映射来防止图像的热链接和添加允许的主机,但不幸的是,这种情况不起作用 下面是VirtualHost的代码 <VirtualHost *:80> DocumentRoot D:\XAMPP\htdocs\test\base ServerName base.test.dev RewriteEngine On RewriteMap allowedhosts "txt:D:\XAMPP\htdocs\test\base/rule

我试图通过在txt文件中动态重写映射来防止图像的热链接和添加允许的主机,但不幸的是,这种情况不起作用

下面是VirtualHost的代码

<VirtualHost *:80>
    DocumentRoot D:\XAMPP\htdocs\test\base
    ServerName base.test.dev
    RewriteEngine On
    RewriteMap allowedhosts "txt:D:\XAMPP\htdocs\test\base/rules.txt"
</VirtualHost>
下面是主机允许访问图像的txt文件行

http(s)?://(www\.)?base.test.dev
请有人帮帮我

谢谢。

来自

txt

包含空格分隔的键值对的纯文本文件,每行一个

问题似乎是关键部分,即捕获的图像类型,例如
gif | jpg | jpeg | bmp | png
之一


您可以将referer作为键,并为未知/无效主机使用默认值

RewriteCond ${allowedhosts:%{HTTP_REFERER}|NOT_ALLOWED} NOT_ALLOWED
RewriteRule \.(?:gif|jpg|jpeg|bmp|png)$ - [F]
这将如下所示:在地图中查找
HTTP\u REFERER
。如果在映射中找不到,则返回默认值
not_ALLOWED
,条件为true。在这种情况下,将返回禁止的
403

来自

txt

包含空格分隔的键值对的纯文本文件,每行一个

问题似乎是关键部分,即捕获的图像类型,例如
gif | jpg | jpeg | bmp | png
之一


您可以将referer作为键,并为未知/无效主机使用默认值

RewriteCond ${allowedhosts:%{HTTP_REFERER}|NOT_ALLOWED} NOT_ALLOWED
RewriteRule \.(?:gif|jpg|jpeg|bmp|png)$ - [F]

这将如下所示:在地图中查找
HTTP\u REFERER
。如果在映射中找不到,则返回默认值
not_ALLOWED
,条件为true。在这种情况下,将返回一个
403禁止的

它正在为每个主机阻止图像它正在为每个主机阻止图像感谢您的回复,没有映射文件的解决方案工作正常,但我需要有映射文件的解决方案,因为有数百个主机,我需要动态构建该文件,这就是为什么我将它与htaccess文件分开。我已经尝试了映射文件的键值解决方案,但它不起作用。好的,但一个键不能有多个主机(gif、jpg等)。感谢您的回复,没有映射文件的解决方案工作正常,但我需要有映射文件的解决方案,因为有数百个主机,我需要动态构建该文件,这就是为什么我将它与htaccess文件分开。我已经尝试了映射文件的键值解决方案,但它不起作用。好的,但是一个键不能有多个主机(gif、jpg等)。