如何限制访问我的文件夹

时间:2011-04-01 08:04:07

标签: codeigniter codeigniter-url

我正在使用codeigniter构建一个包含大量图片库的网站,我将图片存储在文件夹中,但我想通过网址限制访问文件夹。我不希望别人有权访问我的图片文件夹使用像这样的网址::

http://website/all_images/

所有图片都是包含图片文件夹的文件夹..我尝试使用htaccess文件

 <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /
     RewriteCond %{REQUEST_URI} ^CI_system.*
     RewriteRule ^(.*)$ /website/index.php?/$1 [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond $1 !^(index\.php|all_images)
     RewriteRule ^(.*)$ /website/index.php?/$1 [L]
 </IfModule>
 <IfModule !mod_rewrite.c>

  ErrorDocument 404 /index.php
  </IfModule>

index.php的重写条件运行良好,但我仍然可以通过网址访问我的所有文件夹

3 个答案:

答案 0 :(得分:3)

如果要禁用要查看的文件夹,只需添加空的index.html文件,但如果您尝试保护图像不被查看,那么您的网站也无法找到它们

答案 1 :(得分:1)

为什么不在该文件夹下创建索引文件。通过这种方式,将无法查看该文件夹下的图像。

您可以将此文件调用为“拒绝访问”或任何您需要的功能。

答案 2 :(得分:0)

选项 - htaccess文件中的索引将停止查看目录,无需额外的文件。如果你想停止直接观看图片,即myweb.com/all_images/coolpic.jpg那么你所要做的就是(因为你的基础是/你可以使用下面的整个):

Options -Indexes
ErrorDocument 404 /index.php
DirectoryIndex index.php
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php/$1 [L,QSA]

  RewriteCond %{HTTP_REFERER} !^$ 
  RewriteCond %{HTTP_REFERER} !^http://(www\.)?myweb.com/.*$ [NC] 
  RewriteRule \.(gif|jpg)$ - [F]
</IfModule>

您需要更改的是包含您网址的行,并将所有文件类型添加到上一个重写规则(用管道分隔每个|),然后这将涵盖您讨论的所有角度100%。

相关问题