阻止直接访问文件到子文件夹,但允许使用htaccess索引页面

时间:2012-09-24 21:18:25

标签: php .htaccess blocking http-referer

我的域名中有很多文件夹和子文件夹。我想避免直接访问特定子文件夹中的文件类型html / jpg / gif / etc,但我希望它可以通过index.php页面访问。

结构类似于:

  • www.domain.com/folder1
  • www.domain.com/folder2
  • www.domain.com/folder2/subfolder1
  • www.domain.com/folder2/subfolder2
  • www.domain.com/folder2/subfolder2/index.php
  • www.domain.com/folder2/subfolder2/page1.html
  • www.domain.com/folder2/subfolder2/page2.html
  • www.domain.com/folder2/subfolder2/images/1.jpg
  • www.domain.com/folder2/subfolder2/images/2.jpg

我尝试将page1.html,page2.html和images文件夹放在名为 blocked_content 的新文件夹中:

  • www.domain.com/folder2/subfolder2/index.php
  • www.domain.com/folder2/subfolder2/的 blocked_content /page1.html

并在 blocked_content 文件夹中添加了deny from allOrder Deny,Allow Deny from all的.htaccess。它阻止了所有,甚至index.php无法访问其中的文件。 Index.php只有<a href="blocked_content/page1.html">

这样的简单链接

在.htaccess上尝试此配置:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com [NC] 
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [F]

并将其放在子文件夹2中并且没有效果。

在.htaccess上尝试此配置:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com/folder2/subfolder2 [NC] 
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [F]

我把它放在子文件夹2中:没有效果。我把它放在根目录下它会阻止所有其他文件夹。

我搜索了很多。我被困了。我究竟做错了什么?把htacess放在错误的地方或伪造添加东西?如果有可能,我想通过.htacess这样做。包含所有html文件的php会话将无法正常工作,因为我无法更改文件名。

1 个答案:

答案 0 :(得分:1)

找到按照我的方式做到这一点的方法。

使用网络工具在此网站PREVENT HOTLINKING OF IMAGES – HOW TO HOTLINK PROTECT

中生成此.htaccess

将.htaccess放入 blocked_content / 文件夹。

我的域中的index.php可以访问此文件夹中的所有内容,但用户无法在浏览器上键入该链接作为热链接。例如: www.domain.com/folder2/subfolder2/blocked_content/images/1.jpg

新的.htaccess

之间的区别
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [NC,F,L]

对旧的:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com [NC] 
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [F]
PS:@Mikulas Dite告诉我,它可能不如我希望的那么安全。