1

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

http://网站/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 的重写条件运行良好,但我仍然可以通过 url 访问我的所有文件夹

4

3 回答 3

4

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

于 2011-04-01T08:08:46.647 回答
2

为什么不在该文件夹下创建一个索引文件。这样,任何人都无法查看该文件夹下的图像。

你可以让这个文件调用一个函数,上面写着“拒绝访问”或者你需要的任何东西。

于 2011-04-01T08:08:00.517 回答
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%。

于 2011-04-09T02:23:58.887 回答