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
。因此,我的逻辑是:

  • 直接访问:空引用
  • 不允许的域:引用者的域与允许的域不同
我还必须阻止其他类型的文件<代码>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>
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,你的评论非常有用!