Wydaje się być to miejsce dla apache tak tu idzie :)Apache 2.2 przekierowanie do SSL * potem * do uwierzytelniania (roztworem <ale to bzdura?)
Wiek stary problem: jak więc przekierować na protokole HTTP> HTTPS, wtedy i tylko wtedy, gdy HTTPS, zrobić autoryzację?
oh - i chciałbym większość z nich w jednym fragmencie, który może być Include-ed w wielokrotności <katalogu> lub <lokalizacja> bloki, przepisuje więc oparte nie na poziomie hosta wirtualnego losowa ścieżka ...
Cóż, oto co mam, które nie wydają się działać:
W szczycie VirtualHost zablokować
# Set ssl_off environment variable
RewriteEngine on
RewriteCond %{HTTPS} =on
RewriteRule^- [E=ssl]
W lokalizacji lub katalogów bloku
RewriteEngine on
# Case 1 redirect port 80 SSL
RewriteCond %{HTTPS} !=on
RewriteCond %{SERVER_PORT} =80
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
AuthType Basic
AuthBasicProvider external
AuthExternal auth_pam
AuthName "My Underpants"
AuthzUnixgroup on
Order Deny,Allow
Deny from all
Allow from env=!ssl
Satisfy any
Require group nice-users
plusów
Wszystkie tego baru require mogą być wydobywane do pliku urywka umieścić w jednej linii na każdej lokalizacji
Ustaliła wymuszenie połączenia SSL i uwierzytelnienia dla każdej lokalizacji, więc mniejsze jest prawdopodobieństwo pomyłki.
Minusy
Krwawe piekło, prawie nie jest intuicyjne! Może być delikatny dla wszystkich, jakie znam ...
Czy jest lepszy sposób (nie, że znalazłem ...)?
Komentarze byłoby bardzo mile widziane, czy to ma jakieś poważne wady :)
Poza Życie byłoby o wiele łatwiejsze, jeśli Apache miał sensownego config składni z rodzajowego
< Jeśli wyrażenie >/If >
blok, który może być używany w dowolnym miejscu. Ma pewne specjalne bloki przypadków, takie jak IfModule, a następnie masz specjalne warianty przypadku, takie jak RewriteCond (co jest bardzo trudne do zdziwienia, jeśli nie jesteś do tego przyzwyczajony).
Cheers,
Tim
Masz na myśli, że nie chcesz zarządzać na VH dla SSL i jeden dla nie-SSL? – regilero
Istnieją przyzwoite rozwiązania tego problemu, jeśli możesz przejść do Apache 2.4, zobacz ... http://stackoverflow.com/a/26155051/762028 – Molomby
Możliwy duplikat [apache .htaccess przekierowanie do HTTPS przed pytaniem o autoryzację użytkownika] (https://stackoverflow.com/questions/10267102/apache-htaccess-redirect-to-https-before-asking-for-user- authentication) – LWC