我有一个网站和子域名用于博客,其他用于下载,例如:(我使用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
答案 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]