Apache 使用.htaccess阻止内容加载,即使在允许的域中也是如此
我试图阻止直接访问或从不允许的域访问的内容加载。为此,我使用了Apache 使用.htaccess阻止内容加载,即使在允许的域中也是如此,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我试图阻止直接访问或从不允许的域访问的内容加载。为此,我使用了.htaccess。因此,我的逻辑是: 直接访问:空引用 不允许的域:引用者的域与允许的域不同 我还必须阻止其他类型的文件jpg | jpeg | gif | png | bmp | zip | ppt | pptx | ai | pdf | doc | xls | xlsx | psd | mov | svg 为了提供更多上下文,内容(以及下面的.htaccess)托管在我希望能够加载内容的不同域中。假设内容在x.com中,我希
.htaccess
。因此,我的逻辑是:
- 直接访问:空引用
- 不允许的域:引用者的域与允许的域不同
.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>
setenif Referer”^https://www.example.com/“莱蒂帕斯
命令拒绝,允许
全盘否定
允许来自环境=LettPass
错误文档403/403.html
重新启动发动机
重写cond%{HTTP_REFERER}^http(s)?:/(www\)?example.com/*$[NC]
重写规则\(jpg | jpeg | gif | png | bmp | zip | ppt | pptx | ai | pdf | doc | xls | xlsx | psd | mov | svg)$-[F,NC,L]
这在一定程度上符合预期。问题是PHP或HTML文档中的某些内容(如图像)甚至在允许的域中也没有加载
结果如下:(来自example.com/a-page/
的屏幕截图)
。它按预期工作。它仅在example.com
.pdf
文档的iframe,
。它按预期工作。它仅在example.com
.php
文档的iframe。该文档有一个img(x.com/image.png
)和一个pdf文件(x.com/file.pdf
)<代码>。它不能像预期的那样工作。页面只在允许的域中加载,这很好,但是像图像这样的一些内容没有加载谢谢 将逻辑
或添加到重写条件
的排除中…以允许嵌入x.com
:
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(example|x).com/.*$ [NC]
据我从您的代码片段中了解,example.com上有一个页面。其中有一个IFrame从x.com加载PHP呈现页面(可以正常工作)。PHP呈现页面再次加载图像和内容,您希望它们显示出来。这不起作用,因为IFrame将x.com作为推荐人发送。谢谢@fragmentedreality,你的评论非常有用!