Hostgator: проблема с паролированием директорий

Ничего не предвещало проблем. Зарубежный хостинг Hostgator, все настроено, проверено, работает. И вот закачиваю новый сайт.  Сделан на Codeigniter. Ставлю пароль на директорию с админкой… тут и настигает проблема: вместо запроса авторизации, вижу 404 ошибку фронт-енда. Прописываю точную ссылку на index.php — безрезультатно.  Директория с админкой словно стала невидимой для сервера.

Когда сталкиваешься с подобными неожиданностями, то самое важное- понять, что именно нужно гуглить: Godeigniter+404 или .htaccess+Hostgator, или что-то еще.

В общем, не буду утруждать деталями. Сразу о том в чем оказалась причина и как ее решать. Выяснилось, что дело не в Codeignitor’e и не в коде вообще. С проблемой сталкиваются многие пользователи. Если, например, Вы попытаетесь поставить WordPress или любую другую систему с роутингом на 404 ошибке, то наверняка столкнетесь с тем же. Оказывается, Hostgator, выдает  не  правильный header при запросе авторизации. 404 вместо 401. И вместо запроса пароля движок отрабатывает 404 ошибку.

Итак, инструкция, как без лишних костылей установить пароль на директорию в хостгаторе (и подобных хосингах), чтобы все работало.

Шаг 1
Паролируем директорию, как описано в инструкции к хостингу, или так, как Вы привыкли это делать

Шаг 2
401.html
В любом текстовом редакторе создаем файл 401.html в котором пишем: “ДИРЕКТОРИЯ ЗАЩИЩЕНА ПАРОЛЕМ – введите корректные логин/пароль.” Загружаем этот файл в корневую директорию домена (папка public_html или www и т.п.).

Шаг 3
Редактируем .HTACCESS файл, который расположен в поддиректории, которую нужно защитить паролем. Пишем:
ErrorDocument 401 /401.html
AuthName "directoryname"
AuthUserFile "путь_к_файлу_с_паролями"
(У HostGator'а путь такой: "/home/имя_пользователя/.htpasswds/public_html/directoryname/passwd"
AuthType Basic
require valid-user

После этого все должно заработать!

14.02.2012 Автор: Ссылка