У меня есть базовая проверка подлинности на сервере разработки. Он настраивается внутри моего файла httpd.conf
для VirtualHost веб-сайта. Я должен был настроить его, чтобы исключить определенные каталоги, что не вызвало никаких проблем, и все работает нормально.
Проблема заключалась в исключении URL-адреса, который прошел через мои правила mod_rewrite
в файле .htaccess
. Моя настройка заключается в том, что у меня есть все URL-адреса, проходящие через мой файл index.php
, и оттуда найден и запущен соответствующий код. Я попытался добавить URL-адрес, который я хотел исключить (/businesses/upload_logo
), как я сделал другие, но он все еще требует аутентификации. Это то, что я сейчас имею:
...
<Location />
SetEnvIf Request_URI "/businesses/upload_logo" noauth=1
SetEnvIf Request_URI "/api/.*" noauth=1
AuthType Basic
AuthName "Private"
AuthUserFile ****
Require valid-user
Order deny,allow
Satisfy any
Deny from all
Allow from env=noauth
</Location>
....
Я нашел вопросы, похожие на мои здесь и здесь, но ответы только дают мне то, что Я уже пытаюсь.
Я тоже думал о возможных других решениях, но это будет последнее средство. Я хочу посмотреть, возможно ли, как я это делаю сейчас:
- Настройте базовый auth внутри моего php-кода вместо
- Слишком много хлопот в данный момент
- Поместите аутентификацию в мой
.htaccess
файл- Не хотел этого делать пока, поскольку я хочу, чтобы проверка подлинности происходила на одном из 3 серверов. Я знаю, что я мог бы использовать еще несколько
SetEnvIf HOST ...
, но я смотрю, можно ли это исправлять таким образом или не первым.
- Не хотел этого делать пока, поскольку я хочу, чтобы проверка подлинности происходила на одном из 3 серверов. Я знаю, что я мог бы использовать еще несколько
Правило mod_rewrite
:
...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L,QSA]