Jak najlepiej wymusić HTTPS i WWW, ale zezwolić na hosta lokalnego?

Jak najlepiej wymusić HTTPS i WWW, ale zezwolić na hosta lokalnego? [Polski]

HTACCESS wymusza HTTPS i WWW, ale zezwala na localhost

Ważne jest, aby wymusić HTTPS i WWW z kilku powodów: zdobądź zaufanie swoich gości, pokazując, że połączenie jest bezpieczne, a jeśli korzystasz z subdomeny, takiej jak www, zachowaj spójność z użytkownikami i raportami w swojej taniej sieci hosting na przykład.

Mechanizmy raportowania, takie jak Google Search Console, mogą łatwo komplikować widok różnych witryn dla tej samej witryny i stron. Jeden z bezpiecznym połączeniem HTTPS, jeden bez i jeden z subdomeną WWW www, a drugi bez, a nawet stać się koszmarem prowadzącym do skonfigurowania filtru subdomen Google Analytics w celu zapewnienia spójnego raportowania.

Istnieją w rzeczywistości pewne proste sposoby, aby zapewnić, że wszyscy odwiedzający zostaną przekierowani do bezpiecznej w HTACCESS wymuszonej wersji witryny HTDPS i subdomeny internetowej, bez wpływu na odwiedziny, a także może być wykorzystany do przekierowania witryny do innej witryny za pomocą tej prostej i elegancka metoda.

Ponadto, aby uzupełnić, upewnić się, że dostęp do subdomeny localhost można uzyskać bez subdomeny internetowej lub przekierowania do HTTPS, a strony kończące się ukośnikiem zostaną przekierowane na normalną stronę, aby uniknąć podwójna liczba tych samych stron w raportach.

Pozbądźmy się wszystkich tych zduplikowanych stron, które utrudniają w końcu prawidłowe agregowanie danych analitycznych:

  • http://mywebsite.com/page

  • http://mywebsite.com/page/

  • https://mywebsite.com/page

  • https://mywebsite.com/page/

  • http://www.mywebsite.com/page

  • http://www.mywebsite.com/page/

  • https://www.mywebsite.com/page

  • https://www.mywebsite.com/page/

  • Wszystko to zostanie zrobione poprzez aktualizację pliku .htaccess, który jest ukrytym plikiem używanym na serwerach Apache, zwykle przechowywanym w folderze głównym witryny.

Przekieruj stronę kończącą się ukośnikiem

Aby usunąć końcowy ukośnik z adresu URL kończącego się jednym z nich, i aby przekierować żądania do standardowej strony bez ukośnika, po prostu dopasuj adresy URL rozpoczynające się i kończące ukośnikiem, upewnij się, że nie jest to żądany katalog, i przekieruj do całego identyfikatora URI żądania bez ukośnika końcowego.

Przekieruj również stronę na bezpieczny adres URL, który powinien być prawidłowy - to rozwiąże bezpośrednio wszystkie potencjalne problemy, w tym zakończenie ukośnika, niezabezpieczone żądanie lub subdomenę inną niż internetowa.

Potrzebujemy również dodatkowego fragmentu kodu, aby upewnić się, że każde żądanie do katalogu kończy się ukośnikiem, ponieważ zwykłe adresy URL katalogów witryn kończą się jednym z nich.

# Remove trailing slash from non-filepath urls
RewriteCond %{REQUEST_URI} /(.+)/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ https://www.mywebsite.com/%1 [R=301,L]
# Include trailing slash on directory
RewriteCond %{REQUEST_URI} !(.+)/$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ https://www.mywebsite.com/$1/ [R=301,L]

HTACCESS wymusza HTTPS i wymusza htaccess WWW

Teraz, gdy problem z końcowym ukośnikiem został rozwiązany, skupmy się na brakującej HTTPS lub brakującej poddomenie internetowej, która może się zdarzyć, z htaccess przekierowującym http do https z siłą www.

Najłatwiejszym i najbardziej stylowym sposobem, aby tak się stało, jest ich identyfikacja w dokładnie tym samym stanie.

Można to łatwo zrobić, dopasowując adresy URL, które nie zaczynają się od subdomeny sieci Web, lub wszelkie żądania nie zawierające HTTPS, i przekierowując poprawny adres URL naszej witryny, który obejmuje zarówno bezpieczne połączenie, jak i subdomenę WWW.

# HTACCESS force HTTPS and force WWW htaccess 
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Wymuś HTTPS i WWW, ale zezwól na localhost

Teraz wszystko jest w porządku, ale co się dzieje, gdy próbujemy dotrzeć do naszej witryny w trybie programistycznym na lokalnym serwerze XAMPP, ale wszystkie nasze żądania do http: // localhost są teraz przekierowywane na https://www.mysite.com - nasza wersja produkcyjna?

Cóż, rozwiązaniem jest ponowne użycie poprzedniego fragmentu kodu, który wymusza HTTPS i wersję WWW żądania URL, ale zacznij od wykluczenia z żądań sprawdzania, które są skierowane do localhost lub do naszego lokalnego adresu IP, czyli 127.0.0.1.

I to wszystko, teraz mamy piękny kawałek kodu, który rozwiąże wszystkie nasze problemy!

# HTACCESS force HTTPS and force WWW htaccess 
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Przekieruj HTTP na HTTPS htaccess, wymuś WWW i usuń końcowy ukośnik

Cały fragment kodu poniżej można wykorzystać w pliku HTACCESS, aby osiągnąć wszystkie następujące cele:

przekieruj http na https w htacces,

Wymuś WWW w htaccess,

Usuń końcowy ukośnik w adresie URL.

Oczywiście nie zapomnij zmienić adresu URL witryny, który dotyczy Ciebie.

Można go nawet użyć do przekierowania strony na inną stronę, po prostu zmieniając docelowe adresy URL na inną najlepszą tanią stronę internetową:

#--------------------------------------------------
# Force WWW htaccess : /
#--------------------------------------------------
#### Force HTTPS://WWW and remove trailing / from files ####
## Turn on rewrite engine
RewriteEngine on

# Remove trailing slash from non-filepath urls
RewriteCond %{REQUEST_URI} /(.+)/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ https://www.mywebsite.com/%1 [R=301,L]

# Include trailing slash on directory
RewriteCond %{REQUEST_URI} !(.+)/$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ https://www.mywebsite.com/$1/ [R=301,L]

# HTACCESS force HTTPS and force WWW htaccess
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Podobne artykuły


Komentarze (0)

zostaw komentarz

Zwiększyć przychody z reklam o 50-250% dzięki Ezoic. Certyfikowany partner wydawców Google.
Zwiększyć przychody z reklam o 50-250% dzięki Ezoic. Certyfikowany partner wydawców Google.
 
Zwiększyć przychody z reklam o 50-250% dzięki Ezoic. Certyfikowany partner wydawców Google.
Zwiększyć przychody z reklam o 50-250% dzięki Ezoic. Certyfikowany partner wydawców Google.