我的域中有很多文件夹和子文件夹。我想避免直接访问特定子文件夹中的文件类型 html/ jpg/ gif/ 等,但我希望它可以通过 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 文件夹放入名为 blocks_content 的新文件夹中:
- www.domain.com/folder2/subfolder2/index.php
- www.domain.com/folder2/subfolder2/blocked_content /page1.html _
deny from all
并Order Deny,Allow
Deny from all
在blocked_content文件夹中添加了一个.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]
并将其放在 subfolder2 中并没有效果。
在 .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]
我把它放在 subfolder2 里面:没有效果。我把它放在根目录它会阻止所有其他文件夹。
我搜索了很多。我被困住了。我究竟做错了什么?把 htacess 放在错误的地方或忘记添加一些东西?如果可能的话,我想通过 .htacess 来做到这一点。将 php 会话包含到所有 html 文件将不起作用,因为我无法更改文件名。