Basic Authentication HTTPS

freeek

Новичок
есть .htaccess на директорию.

дира закрыта 401-ой аутентификацией.

задача, если чел ломится в диру как http: мы должны перекинуть его на https: и тогда выдать приглашение для в авторизации.

как? не могу понять пока что.

с реврайтом все понятно
к примеру

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

а как увязать AuthType Basic?
 

С.

Продвинутый новичок
Ва звисиомости от того, что имеется в виду под
дира закрыта 401-ой аутентификацией.
Либо сервер сам запросит пароль, либо ваш скрипт соответствущим заголовком.
 

freeek

Новичок
тут такая ситуация) в htaccess в соответствующей дире есть инструкции по AuthType Basic и все.

т.е. заходим http://blabla.com/noaccessdir/ вываливается аутентификация. все ок.

но вот понадобился такой момент, чтобы аутентификация на директорию шла через https://

если обратиться к сей дире по https с нынешней инструкцией все норм, так как по http, но нам надо не дать этому произойти по http,
т.е. логика вроде как простая, мы перенаправляем с http на https и только тогда выдаем аутентификацию.

затык в том как разграничить эти два правила, чтобы каждое работало к своему месту. я пока не могу понять.
никаких скриптов и т.д. в дире нет. вообще в ней может быть пусто.
 

С.

Продвинутый новичок
Вроде ничего сложного нет. Сначала одно правило применили, потом другое.
Самое время выложить уже этот .htaccess, чтобы не на пальцах объяснять.
 

MiksIr

miksir@home:~$
Я точно не помню, но возможно auth отрабатывает раньше, чем mod_rewrite.
Решений может быть много. Например, отключить авторизацию для http что бы сработал реврайт на https. Это можно сделать как-то так
Order Allow,Deny
Allow from all
Deny from env=HTTPS
Satisfy Any
 

freeek

Новичок
PHP:
#prevent directory browsing -- for security
IndexIgnore */*


RewriteEngine On
RewriteBase /
RewriteCond %{httpS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

AuthType Basic
AuthName "No access"
AuthUserFile .htnopasswd
AuthGroupFile /dev/null
Require valid-user
Order Allow,Deny
Allow from all
Deny from env=HTTPS
Satisfy Any
типа так?
 

Dovg

Продвинутый новичок
а описать два разных Virtualhost не вариант?
 

freeek

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

freeek

Новичок
в общем диру закрыли, идея описать разные виртуал хосты тоже принимается). если есть другие варианты, можно выложить, будет интересно)
 
Сверху