我有一个网站和子域用于博客,另一个用于下载,例如:(我使用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.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
您不希望使用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]