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

时间:2013-10-18 21:39:27

标签: php wordpress .htaccess subdomain block

我有一个网站和子域名用于博客,其他用于下载,例如:(我使用wordpress)

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

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

我将此网址放在我的网站 mysite.com

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

我将此网址放在其他网站上,而不是我的网站 anysite.com

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

如果网址是通过 blog.mysite.com mysite.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

1 个答案:

答案 0 :(得分:0)

您不希望使用mod_access来允许特定网站访问,因为它通过发出请求的人的 HOST / IP 进行过滤,而不是来自请求引用的位置。我想你想要检查引用者,因为这就是你知道某些东西的关联方式。

要记住的是,无法保证你实际上是让人们从你的东西中汲取东西,因为引用者很容易伪造。但是你可以添加一些重写规则来处理这类事情。

确保在您的网络服务器中加载mod_rewrite并在之前添加这些规则在您的文档根目录中的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]