Назад | Перейти на главную страницу

.htaccess deny у всех не работает?

Я запускаю Apache 2.2.20 на веб-сервере Ubuntu 11.04. У меня есть сайт Joomla, но я также добавил немного пользовательского контента. В основной сети я добавил папку /images/sub_folder и в этом sub_folder Я выложил кучу фоток. Я не хочу, чтобы кто-то мог просто получить доступ к этим изображениям прямо из Интернета, поэтому я сделал .htaccess файл в этом sub_folder и просто введите в него следующую строку:

deny from all

Похоже, никакого эффекта нет, я все еще могу получить доступ к изображениям прямо из веб-браузера. Я перезапустил службу Apache. Что я делаю не так?

Спасибо

Тим

В файле конфигурации вашего веб-сайта вам нужно будет использовать AllowOverride All. Это переопределит предыдущие директивы конфигурации тем, что вы упомянули в .htaccess файл.

Примечание. По соображениям безопасности не устанавливайте для AllowOverride ничего, кроме None в вашем блоке. Вместо этого найдите (или создайте) блок, который ссылается на каталог, в котором вы фактически планируете разместить файл .htaccess.

См. Следующие ссылки.

http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride http://httpd.apache.org/docs/2.2/howto/htaccess.html#how

В вашей конфигурации apache запретите запись для каталога, примерно так:

<Directory "yourdirectoryabsolutepath" >
Options Includes
AllowOverride All
Order allow,deny
Deny from All
</Directory>

Если вы хотите запросить пароль для входа в папку из Интернета, вам необходимо создать .htaccess в папке, которую вы хотите защитить, и файл паролей для пользователя, который сможет войти в систему, но должен будет изменить из вашей конфигурации apache на Allow from All и что-то в вашем .htacces вроде этого

AuthName "Password Protected Directory"
AuthType Basic
AuthUserFile /pathtoyourpasswdfile/.htpasswd
require valid-user

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

http://www.edwinbush.com/my-tools-page/htpasswd-content-generator/

И все, теперь, когда вам нужно войти в папку, появится подсказка с запросом пользователя и пароля. Возможно, потребуется перезапустить apache