как я могу ограничить доступ к своим папкам - PullRequest
1 голос
/ 01 апреля 2011

я использую codeigniter для создания веб-сайта с большим количеством галерей изображений, я храню изображения в папках, но я хочу ограничить доступ к папкам через URL. Т.е. я не хочу, чтобы люди имели доступ к моей папке с изображениямииспользуя URL-адрес, подобный следующему: *

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 работает хорошо, но я все еще получаю доступ ко всем моим папкам через URL

Ответы [ 3 ]

3 голосов
/ 01 апреля 2011

Если вы хотите отключить просмотр папок, просто добавьте пустой файл index.html, но если вы попытаетесь защитить изображения от просмотра, ваш сайт тоже не сможет их найти

1 голос
/ 01 апреля 2011

Почему бы вам не создать индексный файл в этой папке. Таким образом, никто не сможет просматривать изображения в этой папке.

Вы можете сделать так, чтобы этот файл вызывал функцию, которая говорит "доступ запрещен" или что-то еще, что вам нужно.

0 голосов
/ 09 апреля 2011

Опции -Индексы в вашем 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%.

...