Я запускаю 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