如果要直接或从不允许的域访问内容,我试图阻止其加载。为此,我使用的是.htaccess
。所以,我的逻辑是:
我还必须阻止其他类型的文件。 jpg|jpeg|gif|png|bmp|zip|ppt|pptx|ai|pdf|doc|xls|xlsx|psd|mov|svg
为了提供更多的上下文,内容(以及后面的.htaccess
)位于与我希望能够加载内容的域不同的域中。假设内容在x.com
中,而我希望能够仅加载内容在example.com
这就是我的.htaccess
SetEnvIf Referer "^https://www.example.com/" letitpass
Order Deny,Allow
Deny from all
Allow from env=letitpass
ErrorDocument 403 /403.html
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com/.*$ [NC]
RewriteRule \.(jpg|jpeg|gif|png|bmp|zip|ppt|pptx|ai|pdf|doc|xls|xlsx|psd|mov|svg)$ - [F,NC,L]
</ifModule>
这部分按预期工作。问题在于,即使在允许的域中,PHP或HTML文档中的某些内容(如图像)也无法加载。
结果如下:({{1}的屏幕截图)
example.com/a-page/
。它按预期工作。仅在<img src="https://x.com/image.png">
example.com
文档.pdf
的iframe。它按预期工作。仅在<iframe src="https://x.com/file.pdf">
example.com
文档的iframe。该文档具有img(.php
)和pdf文件(x.com/image.png
)。 x.com/file.pdf
。它无法正常运行。该页面仅在允许的域中加载,这很好,但是图像之类的某些内容未加载有什么想法吗? 谢谢!
答案 0 :(得分:1)
在OR
的排除项中添加逻辑RewriteCond
...以允许嵌入x.com
:
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(example|x).com/.*$ [NC]