.htaccess — Как добавить HTTP-аутентификацию в приложение Heroku на основе PHP?

Я пытаюсь добавить HTTP-аутентификацию в свое приложение Heroku на основе php. Я нашел отличную суть Github Вот он предоставляет код для создания файлов .htaccess и .htpasswd в моем каталоге Heroku. В настоящее время у меня есть оба файла в каталоге / app / (поэтому .htaccess находится в /app/.htaccess, а .htpasswd — в /app/.htpasswd). Однако, когда я перехожу к своему приложению и ввожу имя пользователя и пароль, я получаю внутреннюю ошибку 500 сервера. Проверяя файл журнала Heroku, я вижу только то, что мой файл .htpasswd не был найден:

(2) Нет такого файла или каталога: [IP удален] AH01620: Не удалось открыть файл пароля: /app/.htpasswd

Вот полное содержимое моего файла .htaccess:

AuthUserFile /app/.htpasswd
AuthType Basic
AuthName «Мои файлы» Требуется действительный пользователь

Если я запускаю bash на heroku и ‘ls -a’, я вижу, что мой файл .htpasswd определенно находится в каталоге / app /.

У кого-то есть идеи, что здесь происходит? Есть ли что-то, чего мне не хватает в плане настройки?

2

Решение

Догадаться! Мне нужно было создать файл .htpasswd в главном каталоге моего проекта (на моем локальном компьютере), затем добавить этот файл в мое git-репозиторий и отправить все это в Heroku. По какой-то причине, когда я использовал «heroku run bash», а затем выполнил команду для добавления файла .htpasswd, кажется, что Heroku добавил этот файл во временную версию / экземпляр, а не в постоянную версию моего приложения.

Для других новичков, которые пытаются сделать это и нуждаются в простом сквозном объяснении:

  • Создайте файл .htaccess в главном каталоге вашего git-репо (на вашем локальном компьютере) согласно инструкциям на
    https://gist.github.com/bbrewer97202/3316425. Для моего приложения я не учел
    часть / www строки AuthFile, потому что нет папки / www /
    на моем экземпляре Heroku.
  • Используя терминал на вашем локальном компьютере, создайте файл .htpasswd в главном каталоге вашего git-репо, набрав ‘htpasswd -c .htpasswd
    [имя пользователя] ‘, как только вы находитесь в этом каталоге.
  • Зафиксируйте все для мерзавца, а затем отправьте на сервер Heroku.
2

Другие решения

Других решений пока нет …