Мне нужно исключить один URL (или еще лучше один префикс) из обычной защиты htaccess Basic Auth. Что-то вроде /callbacks/myBank
или /callbacks/.*
Есть какие-нибудь подсказки, как это сделать?
Я не ищу, как исключить файл. Это должен быть URL-адрес (так как это решение, основанное на структуре PHP, и все URL-адреса перенаправляются mod_rewrite
на index.php
). Таким образом, по этому URL-адресу нет файла. Ничего.
Некоторые из этих URL-адресов - это просто обратные вызовы от других служб (IP-адрес неизвестен, поэтому я не могу исключить его на основе IP-адреса), и они не могут запрашивать пользователя / пароль.
Текущее определение очень простое:
AuthName "Please login."
AuthGroupFile /dev/null
AuthType Basic
AuthUserFile /xxx/.htpasswd
require valid-user
источник
%{REQUEST_URI}
значение - это переписанная строка. В случае с тортом 3 так и остается/webroot/index.php
. Возможно, вам придется предложить альтернативный подход, такой как использование самого Cake для обработки аутентификации маршрутов.Используя SetEnvIf , вы можете создать переменную, когда запрос начинается с некоторого пути, а затем использовать
Satisfy Any
директиву, чтобы избежать необходимости входа в систему.Блок директив allow / deny говорит, что запрещает доступ для ВСЕХ , за исключением случаев, когда есть действительный пользователь (успешный вход в систему с помощью BASIC auth) или если
noauth
переменная установлена.источник
Order deny,allow
не получилось. Что и говорить очень обидно!Allow from env=REDIRECT_noauth
для перезаписи URL. Возможно, проблема в @vishal. Посмотрите здесь: [ stackoverflow.com/a/41092497/1285585]Allow from env=noauth
иAllow from env=REDIRECT_noauth
чтобы она работала.Это решение работает очень хорошо, вам просто нужно определить белый список, через который вы хотите пройти.
источник
Я пробовал другие решения, но это сработало для меня. Надеюсь, это поможет другим.
Это позволит
/index.php/api/
открывать URL-адрес api и любую строку URL-адреса после этого без необходимости входа в систему, и все остальное будет предложено войти в систему.Пример:
mywebsite.com/index.php/api
откроется без запроса входа в системуmywebsite.com/index.php/api/soap/?wsdl=1
откроется без запроса входа в системуmywebsite.com
будет предложено сначала войти в системуисточник
источник
Другой подход работает так, если в защищаемой области есть монолитный PHP-скрипт, контролирующий все, например Wordpress. Настройте аутентификацию с помощью в другом каталоге. Поместите туда index.php, который устанавливает cookie по пути '/'. Затем в Wordpress (например) проверьте файл cookie, но не проверяйте, является ли $ _SERVER ['REQUEST_URI'] исключенным URL.
На моей платформе общего хостинга RewriteRule не мог установить переменную среды, которая работала бы с «Удовлетворять любому».
При любом подходе следите за тем, чтобы защищаемая страница не содержала изображений, таблиц стилей и т. Д., Которые вызывают запрос аутентификации, когда сама страница этого не делает.
источник
Добавьте приведенный ниже код в корневой файл htaccess и не забудьте изменить URL-адрес администратора, страницу файла .htpasswd.
Создайте файл .htpasswd в корневой папке и добавьте ниже имя пользователя и пароль (установите имя пользователя по умолчанию: admin и пароль: admin123)
Пожалуйста, дайте мне знать, если вы по-прежнему сталкиваетесь с какой-либо проблемой.
источник
почему бы вам просто не использовать базовую аутентификацию, как это было задумано?
источник