我的域中有很多文件夹和子文件夹。我想避免直接访问特定子文件夹中的文件类型html/jpg/gif/etc,但我希望它可以通过index.php页面访问。阻止直接访问文件到子文件夹,但允许用htacess索引页面
结构是这样的:
- 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
我tryed把page1.html,page2.html和图像的所谓的新文件夹,文件夹里面blocked_content:
- www.domain.com/folder2/subfolder2/index.php
- www.domain.com/folder2/subfolder2/ blocked_content /page1.html
和在blocked_content文件夹中添加了一个带有deny from all
和Order Deny,Allow Deny from all
的.htaccess。它阻止了所有,甚至index.php无法访问这里面的文件。 index.php文件只有简单的链接,<a href="blocked_content/page1.html">
Tryed上的.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并没有得到效果。
Tryed这个配置上的.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文件将无法正常工作,因为我无法更改文件名。
我是否正确理解您希望阻止所有请求,但只有'index.php',并且只有在index.php网站在浏览器中呈现并且浏览器请求内容时才返回其他资源?如果是这样的话,它不能完成(至少不安全)。用户可以随时更改任何可能检查的标题。 –
我找到了一种方法,以我想要的方式做我想做的事。找到一个工具来生成.htaccess文件,它的工作!但用户如何更改标题Mikulas?哪种方式是安全的方式? – Leo
如果是这样,请将解决方案作为答案发布在Stack Overflow上或者关闭该问题。更改标题可以通过创建自定义请求来完成,例如'curl'(http://curl.haxx.se/)。 –