如何仅允许我的域和子域使用 .htacess 访问文件


How to allow only my domain and subdomain to access files using .htacess

我有一个网站和子域用于博客,另一个用于下载,例如:(我使用WordPress)

    mysite.com
    blog.mysite.com
    download.mysite.com

我需要阻止所有 on download.mysite.com 对任何 URL 的直接访问,并且仅在通过我的网站或博客访问文件时才允许访问,例如:

我把这个网址放在我的网站上 mysite.com

    download.mysite.com/mysoftware.exe (this file is accessed normally)

我把这个网址放在其他网站上,没有我的网站 anysite.com

    download.mysite.com/mysoftware.exe (this file is blocked!)

如果 URL 是通过 blog.mysite.commysite.com 访问的,则文件正常访问,但如果文件是直接使用 URL 或其他没有我的域访问的,示例 no-mysite.com,则文件将被阻止......

我找到了这个代码 .htacess

    Order Allow, Deny
    Deny from all
    Allow from mysite.com
    Allow from www.mysite.com
    Allow from blog.mysite.com
    Allow from www.blog.mysite.com

但是不要为我工作,我的域名也被阻止了...我需要允许我的网站上的任何子网址,例如 mysite.com/thelink/on/this/page

您不希望使用mod_access来允许特定站点访问,因为它按发出请求的人的主机/IP进行过滤,而不是从哪里引用请求。我认为您想检查引用,因为这就是您知道某些内容链接从何处的方式。

要记住的是,不能保证你真的让人们偷偷摸摸你的东西,因为裁判是微不足道的伪造。但是您可以添加一些重写规则来处理此类事情。

确保mod_rewrite已加载到您的 Web 服务器中,并在文档根目录的 htaccess 文件中已有的任何规则之前添加这些规则:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://(www'.)?mysite'.com/ [NC]
RewriteCond %{HTTP_REFERER} !^https?://blog'.mysite'.com/ [NC]
RewriteCond %{HTTP_REFERER} !^https?://download'.mysite'.com/ [NC]
RewriteCond %{HTTP_HOST} ^download'.mysite'.com$ [NC]
RewriteRule ^ - [L,F]