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

Возможно, что усложняет дело, так это то, что каждая страница моего сайта на самом деле является /master.php, и единственной разницей между страницами является строка запроса, которая инструктирует master.php вставлять контент, специфичный для этой страницы. Это дает мне действительно простое решение для кожи. Вместе с mod_rewrite у меня есть дружественные URL-адреса, такие как:

mysite.com/stats
mysite.com/about

которые переписываются на:

mysite.com/master.php?p=stats
mysite.com/master.php?p=about

В этой настройке возможно ли требовать аутентификацию для всего сайта, кроме, например, /about? Обратите внимание, что /about может иметь строку запроса после нее, поэтому мне нужно сделать исключение для шаблона URL, а не только для конкретного URL.

Если это имеет какое-то значение, вот некоторые особенности:

  • Ubuntu 15.04
  • Apache 2.4.10
  • Мои переписанные файлы находятся в файле site.conf, а не в файлах .htaccess.

1 ответ1

0

Используя mod_setenvif:

SetEnvIf Request_URI "^/about$" allow=yes

AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/webinterface/.htpasswd
Options +FollowSymLinks
Order Deny,Allow
Satisfy any
Deny from All
Require valid-user
Allow from env=allow

→ нижняя часть блокирует весь контент, кроме случаев, когда вы вошли в систему или если allow=yes , что устанавливается только в том случае, если запрос uri является сайтом about.

ссылка: https://stackoverflow.com/questions/8731109/getting-authentication-required-when-requesting-instead-of-index-php?rq=1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .