Aký je najlepší spôsob, ako prinútiť HTTPS a WWW, ale povoliť localhost?

Aký je najlepší spôsob, ako prinútiť HTTPS a WWW, ale povoliť localhost? [Slovenský]

HTACCESS vynúti HTTPS a WWW, ale umožňuje localhost

Je dôležité vynútiť HTTPS a WWW z niekoľkých dôvodov: získajte dôveru svojich návštevníkov tým, že preukážete, že pripojenie je bezpečné, a ak používate subdoménu, ako je napríklad www, udržiavajte konzistenciu so svojimi návštevníkmi a svoje správy, na svojom lacnom webe hosting napríklad.

Pri zostavovaní prehľadov, ako je Google Search Console, môže byť zložité mať rôzne pohľady na rovnaké stránky a stránky. Jeden so zabezpečeným pripojením HTTPS, jeden bez a jeden z nich s webovou subdoménou www a druhý bez, a dokonca sa stal nočnou morou, čo vás vedie k nastaveniu filtra subdomény Google Analytics, aby ste mali konzistentné prehľady.

V skutočnosti existuje niekoľko jednoduchých spôsobov, ako zabezpečiť, aby všetci návštevníci boli presmerovaní na zabezpečené stránky vo verzii HTACCESS a vo webovej subdoméne bez toho, aby to malo vplyv na návštevy, a môžu sa tiež použiť na presmerovanie webových stránok na iné webové stránky pomocou tohto jednoduchého a elegantná metóda.

A aby to bolo kompletné, uistite sa, že k subdoméne localhost je možné pristupovať bez webovej subdomény alebo presmerovania na HTTPS, a že stránky končiace lomkou budú presmerované na normálnu stránku, aby sa predišlo dvojnásobný počet rovnakých stránok v prehľadoch.

Zbavme sa všetkých týchto duplicitných stránok, ktoré na konci sťažujú správne agregovanie analytických údajov:

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

  • Toto všetko sa dosiahne aktualizáciou súboru .htaccess, ktorý je skrytým súborom používaným na serveroch Apache, zvyčajne uloženým v koreňovom priečinku webovej stránky.

Presmerovanie stránky končiace lomkou

Ak chcete odstrániť koncovú lomku z adresy URL končiacej jednou z nich a nechať presmerovať požiadavky na štandardnú stránku bez lomky, jednoducho porovnajte adresy URL začínajúce a končiace lomkou, uistite sa, že to nie je požadovaný adresár, a presmerujte na celú URI požiadavky bez koncovej lomky.

Tiež presmerujte stránku na bezpečnú webovú adresu URL, ktorá by mala byť správna - týmto sa priamo vyriešia všetky vaše potenciálne problémy vrátane koncovej lomky, nezabezpečenej žiadosti alebo inej webovej subdomény.

Potrebujeme tiež ďalší kód, aby sme sa ubezpečili, že akákoľvek požiadavka do adresára končí lomkou, pretože bežné adresy URL adresárov webových stránok skončí s jedným 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 vynúti HTTPS a vynúti htaccess WWW

Teraz, keď je konečný problém s lomkou vyriešený, zamerajme sa na chýbajúci HTTPS alebo chýbajúcu webovú subdoménu, ktorá sa môže stať, s presmerovaním htaccess http na https so silou www.

Najjednoduchší a najštýlovejší spôsob, ako to dosiahnuť, je mať obe identifikované v rovnakom stave htaccessu.

To sa dá ľahko dosiahnuť porovnaním adries URL, ktoré nezačínajú webovou subdoménou, alebo akoukoľvek požiadavkou, ktorá neobsahuje HTTPS, a presmerovaním správnej adresy URL našej webovej stránky, ktorá obsahuje zabezpečené pripojenie aj webovú subdoménu 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]

Vynútite HTTPS a WWW, ale povoľte localhost

Teraz je to všetko dobré, ale čo sa stane, keď sa skutočne pokúsime dostať na našu webovú stránku vo vývojovom režime na lokálnom serveri XAMPP, ale všetky naše požiadavky na http: // localhost sa teraz presmerujú na https://www.mysite.com - naša produkčná verzia?

Riešením je opätovné použitie predchádzajúceho kusu kódu, ktorý presadzuje HTTPS a WWW verziu žiadosti o URL, ale začnite tým, že vylúčite z požiadaviek na kontrolu, ktoré sú adresované na localhost alebo na našu miestnu IP adresu, ktorá je 127.0.0.1.

A to je všetko, teraz máme krásny kúsok kódu, ktorý vyrieši všetky naše problémy!

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

Presmerujte HTTP na HTTPS, vynútite WWW a odstráňte koncovú lomku

Celú časť kódu nižšie je možné použiť v súbore HTACCESS na dosiahnutie všetkých týchto cieľov:

Presmerujte HTTP na HTTPS v htacces,

Vynútiť WWW v úspechu,

Odstráňte koncovú lomku z adresy URL.

Nezabudnite samozrejme zmeniť webovú adresu webovej stránky, ktorá sa na vás vzťahuje.

Môže sa dokonca použiť na presmerovanie webovej stránky na inú webovú stránku jednoducho zmenou cieľových adries URL na váš druhý najlepší lacný web hosting web:

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

Podobné články


Komentáre (0)

Zanechať komentár

Zvýšte tržby z reklamy o 50-250% s nástrojom Ezoic. Certifikovaný partner spoločnosti Google pre publikovanie.
Zvýšte tržby z reklamy o 50-250% s nástrojom Ezoic. Certifikovaný partner spoločnosti Google pre publikovanie.
 
Zvýšte tržby z reklamy o 50-250% s nástrojom Ezoic. Certifikovaný partner spoločnosti Google pre publikovanie.
Zvýšte tržby z reklamy o 50-250% s nástrojom Ezoic. Certifikovaný partner spoločnosti Google pre publikovanie.