апач: стандартная аутентификация прежде переписывает

У меня есть апач в frontend, которые перенаправляют запрос через переписать правило. Я должен поместить стандартную аутентификацию перед перенаправлением запрос, таким образом, я поместил это в файл конфигурации:

<VirtualHost *:443>
    ServerAdmin xxxxxx
    DocumentRoot /var/www/html/
    ServerName xxxxxxx
    RewriteEngine on
    ErrorLog logs/error.log
    CustomLog logs/access_log common

    <Directory /var/www/html/>
        AuthType Basic
        AuthName "Restricted Files"
        AuthUserFile /etc/httpd/conf/tag.pwd
        Require valid-user
        RewriteRule ^/(.*) http://xxxxxx:xxx/$1   [P,L]
    </Directory>
</VirtualHost>

Но не работает.

Какие-либо предложения?

9
задан Gumbo 9 April 2010 в 14:01
поделиться

2 ответа

Я решил разместить условие перезаписи и правило перезаписи вне директивы Locatio:

<Location />
  AuthType Basic
  AuthName "Restricted Files"
  AuthUserFile /etc/httpd/conf/tag.pwd
  Require valid-user
</Location>
RewriteCond %{LA-U:REMOTE_USER} !^$
RewriteRule ^/(.*) http://xxxxxx:xxx/$1   [P,L]

большое спасибо h0tw1r3 за предложение

* Помните, что директивы Location работают с URL, а не с каталогами. Это означает, что если кто-то создаст псевдоним корня документа, он полностью обойдет эти правила аутентификации. (Подробнее см. http://httpd.apache.org/docs/2.0/mod/core.html#location)

.
5
ответ дан 4 December 2019 в 12:17
поделиться

Обновление : неявное правило каталога гарантирует, что проверка всегда требуется перед выполнением перезаписи. Обнаружено, что различные комбинации модулей apache меняют поведение, поэтому принятый ответ может не всегда работать.

<Location />
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile /etc/httpd/conf/tag.pwd
    Require valid-user
</Location>

<Directory /documentroot>
    RewriteCond %{LA-U:REMOTE_USER} (.+)
    RewriteRule (.*) http://xxxxxx:xxx/$1   [P,L]
</Directory>
2
ответ дан 4 December 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: