htaccess apache mod_rewrite & аутентификация: странное поведение - PullRequest
0 голосов
/ 23 февраля 2011

Я создал аутентификацию на основе запросов на моем сервере Apache, но у меня странное поведение от Apache, и я не могу найти выход из этого.Вот код .htaccess:

RewriteEngine on
RewriteCond %{QUERY_STRING} p=1
RewriteRule ^(.*)$ $1?map=$1 [E=authme:1]
Order deny,allow
Deny from env=authme
AuthType Basic 
AuthName "Login Required"
AuthUserFile /var/www/test/.htpasswd
require valid-user
Satisfy any

Я ожидаю, что apache рассмотрит строку запроса для p = 1.Если найдено, переменная окружения установлена ​​(authme = 1).Это работает отлично!
Я ожидаю, что тогда требуется аутентификация (Запретить от env = authme), если в строке запроса присутствует p = 1.
Все это прекрасно работает, если вызов из браузера является основным для индексного файла.(в моем случае index.php), но вообще не работает , если вызов другого файла в том же каталоге.
Правильно задана переменная окружения (я могу проверить это с помощью PHP), ноаутентификация не требуется.

Я действительно не могу понять, почему.Любая помощь будет оценена!

Более подробную информацию можно найти здесь

Ответы [ 2 ]

0 голосов
/ 27 января 2012
require valid_user

должно быть

require valid-user
0 голосов
/ 14 сентября 2011

У вас есть другие правила переписывания после этого?Вы пытались сделать это последним [L] правилом?Также вы пробовали во втором браузере, который никогда не проходил аутентификацию ни по одному URL?

...