@hancack

Как сделать исключение для API запросов при защите сайта паролем?

Всем привет! Я столкнулся со следующей ситуацией: у меня имеется сайт, который был запаролен средствами htpasswd и htaccess дабы скрыть проект от лишних глаз, пока он находится на стадии разработки. Однако помимо основого сайта имеются сервера, которые взаимодействуют с API основного сайта, и нужно сделать так, чтобы все, кроме этого самого API, которое распологается на project.com/api, было защищено паролем. На данный момент у меня реализована защита всего сайта, но нужно сделать что-то вроде исключения для запросов на страницы /api. На данный момент у меня сайт закрыт с использованием следующего кода в htaccess:
AuthName "Please enter your credentials. Website is available only to authorized users."
AuthType Basic
AuthUserFile /var/www/html/master/.htpasswd
Require valid-user

Попробовал сделать директорию api в корне сайта и сделать там свой htaccess файл, однако в таком случае при попытке воспользоваться api открывается просто пустая директория, что в целом логично.
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
@dodo512
Если Apache >= 2.4.
AuthName "Please enter your credentials. Website is available only to authorized users."
AuthType Basic
AuthUserFile /var/www/html/master/.htpasswd

<RequireAny>
    Require valid-user
    Require expr %{THE_REQUEST}=~m#^\S+\s/api#
</RequireAny>


Если Apache < 2.4.
AuthName "Please enter your credentials. Website is available only to authorized users."
AuthType Basic
AuthUserFile /var/www/html/master/.htpasswd
Require valid-user

Satisfy Any
SetEnvIf Request_URI ^/api  api_allow=1
Order Allow,Deny
Allow from env=api_allow
Allow from env=redirect_api_allow
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы