Care este cel mai bun mod de a forța HTTPS și WWW, dar permite localhost?

Care este cel mai bun mod de a forța HTTPS și WWW, dar permite localhost? [Română]

HTACCESS forță HTTPS și WWW, dar permite localhost

Este important să forțați HTTPS și WWW din mai multe motive: câștigați încrederea vizitatorilor dvs. arătând că conexiunea este sigură și, dacă utilizați un subdomeniu, cum ar fi www, păstrând coerența cu vizitatorii și raportarea dvs., pe site-ul dvs. web ieftin găzduire de exemplu.

Poate fi ușor complicat în raportarea motoarelor precum Google Search Console pentru a avea vizualizări diferite pentru același site și pagini. Una cu conexiune HTTPS sigură, una fără, și una cu fiecare cu subdomeniu Web www și alta fără, și chiar să devii un coșmar care te conduce să configurezi un filtru de subdomeniu Google Analytics pentru a avea raportări consistente.

Există, de fapt, câteva modalități ușoare de a vă asigura că toți vizitatorii vor fi redirecționați către securitatea în versiunea HTACCESS forța HTTPS a site-ului și a subdomeniului Web, fără a afecta vizitele, și se poate folosi și pentru a redirecționa site-ul către un alt site web cu acest simplu și metodă elegantă.

Și, pe deasupra, și pentru a-l face complet, pentru a vă asigura că subdomeniul localhost poate fi accesat fără subdomeniul Web sau redirecționarea către HTTPS, iar paginile care se termină cu slash vor fi redirecționate către pagina normală, pentru a evita număr dublu din aceleași pagini din rapoarte.

Să scăpăm de toate aceste pagini duplicate, ceea ce îngreunează la sfârșit agregarea corectă a analizelor:

  • 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/

  • Toate acestea se vor face prin actualizarea fișierului .htaccess, care este un fișier ascuns folosit pe serverele Apache, de obicei stocate în folderul rădăcină al site-ului.

Redirecționați pagina care se încheie cu o linie scurtă

Pentru a elimina linia de finalizare de la adresa URL care se termină cu una dintre ele și pentru a redirecționa solicitările către pagina standard fără claviatul, pur și simplu se potrivesc URL-urile care încep și se termină cu o lamă, asigurați-vă că nu este solicitat un director și redirecționați. la întreaga solicitare URI, fără taiere finală.

De asemenea, redirecționați pagina către URL-ul Web securizat, care ar trebui să fie corect - acest lucru va rezolva direct toate problemele dvs. potențiale, inclusiv încheierea obținerii, cererea nesigură sau subdomeniul Web.

De asemenea, avem nevoie de un cod suplimentar pentru a ne asigura că orice solicitare către un director se încheie cu o lamă, întrucât adresele URL ale directoarelor web normale se vor încheia cu una dintre ele.

# 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 forță HTTPS și forță WWW htaccess

Acum, că problema finală de slash este rezolvată, să ne concentrăm asupra lipsei HTTPS sau a subdomeniului Web lipsă care se poate întâmpla, cu o redirecționare http htaccess către https cu forța www.

Cel mai ușor și elegant mod de a face acest lucru este de a le identifica pe amândouă în exact aceeași condiție de accese.

Acest lucru se realizează ușor prin potrivirea adreselor URL care nu încep cu subdomeniul Web sau orice solicitare care nu include HTTPS și redirecționând adresa URL corectă a site-ului nostru web, care include atât conexiunea sigură cât și subdomeniul Web 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]

Forțați HTTPS și WWW, dar permiteți localhost

Acum, totul este bine, dar ce se întâmplă când încercăm de fapt să ajungem pe site-ul nostru Web în modul de dezvoltare pe serverul local XAMPP, dar toate solicitările noastre către http: // localhost sunt acum redirecționate către https://www.mysite.com - versiunea noastră de producție?

Ei bine, soluția constă în reutilizarea piesei anterioare de cod care aplică versiunea HTTPS și WWW a cererii URL, dar începeți-o prin excluderea din cererile de verificare care sunt fie adresate la localhost, fie la adresa IP locală, care este 127.0.0.1.

Și asta este, avem acum o bucată de cod frumoasă care ne va rezolva toate problemele!

# 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]

Redirecționați HTTP către HTTPS htaccess, forțați WWW și eliminați clapeta finală

Întregul cod de mai jos poate fi utilizat în fișierul HTACCESS pentru a realiza toate următoarele:

redirecționați http către https în htacces,

Forțați WWW în htaccess,

Eliminați linia finală din URL.

Desigur, nu uitați să schimbați adresa URL a site-ului web pentru cea care vi se aplică.

Poate fi folosit chiar pentru a redirecționa site-ul către un alt site web, schimbând pur și simplu adresele URL de destinație către celălalt site de gazduire web ieftin:

#--------------------------------------------------
# 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]

Articole similare


Comentarii (0)

Lasa un comentariu

Creșteți venitul publicitar cu 50-250% cu Ezoic. Un partener de publicare certificat Google.
Creșteți venitul publicitar cu 50-250% cu Ezoic. Un partener de publicare certificat Google.
 
Creșteți venitul publicitar cu 50-250% cu Ezoic. Un partener de publicare certificat Google.
Creșteți venitul publicitar cu 50-250% cu Ezoic. Un partener de publicare certificat Google.