Chcemy, aby WSZYSTKIE witryny na naszym serwerze internetowym (IIS 10) wymuszały SSL (tj. Przekierowywały HTTP na HTTPS).
Obecnie „Wymagamy protokołu SSL” w każdej witrynie i konfigurujemy 403 error
moduł obsługi w celu wykonania 302 redirect
adresu do https dla tej konkretnej witryny.
To działa świetnie. Ale dla każdej strony jest to uciążliwe, jest mnóstwo miejsca na ludzkie błędy.
Idealnie chciałabym ustawić na stałe 301 redirect
na wszystko HTTP://*
, abyHTTPS://*
Czy istnieje prosty sposób, aby to zrobić w IIS?
Odpowiedzi:
Moduł IIS URL Rewrite 2.1 dla IIS7 + może być twoim przyjacielem. Moduł można pobrać z IIS URL Rewrite . Używanie modułu URL Rewrite Module i URL Rewrite Module 2.0 Dokumentacja konfiguracyjna objaśnia sposób korzystania z modułu.
Po zainstalowaniu modułu możesz utworzyć przekierowanie dla całego hosta za pomocą Menedżera usług IIS. Wybierz przepisz adres URL , dodaj regułę ... i regułę pustą .
Nazwa:
Przekieruj do HTTPS
Dopasuj URL
Żądany adres URL:
Matches the Pattern
Używanie:
Wildcards
Wzór:
*
Ignoruj wielkość liter: Zaznaczone
Warunki
Logiczne grupowanie: Wprowadzanie
Match Any
warunków :
{HTTPS}
Sprawdź, czy ciąg wejściowy:
Matches the Pattern
Wzór:
OFF
Ignoruj wielkość liter: Zaznaczone
Śledzenie grup przechwytywania w różnych warunkach: Nie zaznaczone
Zmienne serwera
Pozostaw puste.
Akcja
Typ akcji:
Redirect
Przekieruj URL:
https://{HTTP_HOST}{REQUEST_URI}
Dołącz ciąg zapytania: Niezaznaczony
Typ przekierowania:
Permanent (301)
Zastosuj regułę i uruchom IISReset (lub kliknij Uruchom ponownie w Menedżerze IIS)
Alternatywnie po zainstalowaniu modułu możesz zmodyfikować plik applicationHost.config w następujący sposób:
źródło
Moje badania pokazują, że może to być lepszy sposób na przekierowanie:
źródło