Базовая авторизация Apache 2.2 для всех сайтов сервера, кроме одного, разрешенного по ip-адресу
Задача
Закрыть сервер разработки базовой авторизацией Apache2, при этом, у локальных компьютеров авторизацию надо отключить. Плюс ко всему, к некоторым сайтам, для определённых ip-адресов доступ так же нужно разрешить (например, серверам с 1С).
Зачем закрывать?
Как минимум для того, чтобы поисковики не лакомились локальными копиями боевых сайтов.
Почему нельзя закрыть в robots.txt?
Тогда нельзя будет добавить robots.txt в систему контроля версий.
Решение
В /etc/apache2/apache2.conf:
<Directory /home/*/www/*> Options FollowSymLinks AllowOverride All Order deny,allow Deny from all AuthType Basic AuthName "Protected Area" AuthUserFile /home/user/etc/.htpasswd Require valid-user Allow from 192.168.0.1/24 Satisfy Any </Directory>
В /etc/apache2/sites-availables/ нужного хоста уже разрешаем доступ только определённому айпишнику:
<Directory /home/user/www/site.ru> Allow from 192.168.10.10 Satisfy Any </Directory>
И да пребудет с вами сила конфигов апача, в которых без стэковерфлоу не разберёшься.
2 комментария
Хороший пост, а скажите, так ли уж необходима эта авторизация на тестовых сайтах?
Рома, тебе доступ на все сайты должен быть без пароля вообще :-)