Qual è il modo migliore per forzare HTTPS e WWW ma consentire localhost?

Qual è il modo migliore per forzare HTTPS e WWW ma consentire localhost?

HTACCESS forza HTTPS e WWW ma consente localhost

È importante imporre HTTPS e WWW per diversi motivi: guadagnare la fiducia dei tuoi visitatori mostrando che la connessione è sicura e, se stai usando un sottodominio come www, mantenendo la coerenza con i tuoi visitatori e i tuoi rapporti, sul tuo web economico hosting per esempio.

Può facilmente diventare complicato nei motori di segnalazione come Google Search Console avere viste diverse per lo stesso sito e le stesse pagine. Uno con connessione HTTPS sicura, uno senza e uno con ciascuno sottodominio Web www e un altro senza, e persino diventare un incubo che ti porta a dover impostare un filtro di sottodominio di Google Analytics per avere rapporti coerenti.

Esistono in realtà alcuni semplici modi per garantire che tutti i visitatori vengano reindirizzati al sicuro nella forza HTACCESS versione HTTPS del sito e del sottodominio Web, senza influire sulle visite, e può anche essere utilizzato per reindirizzare il sito Web a un altro sito Web con questo semplice e metodo elegante.

Inoltre, per completarlo, assicurarsi che al sottodominio localhost sia possibile accedere senza il sottodominio Web o il reindirizzamento a HTTPS e che le pagine che terminano con la barra vengano reindirizzate alla pagina normale, al fine di evitare doppio conteggio delle stesse pagine nei rapporti.

Sbarazziamoci di tutte queste pagine duplicate, che alla fine rendono difficile aggregare correttamente l'analisi:

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

  • Tutto ciò avverrà aggiornando il file .htaccess, che è un file nascosto utilizzato sui server Apache, generalmente archiviato nella cartella principale del sito Web.

Pagina di reindirizzamento che termina con una barra

Per rimuovere la barra finale dall'URL che termina con una di esse e per reindirizzare le richieste alla pagina standard senza barra, abbina semplicemente gli URL che iniziano e finiscono con una barra, assicurati che non sia una directory richiesta e reindirizza all'intero URI della richiesta senza la barra finale.

Inoltre, reindirizza la pagina all'URL Web sicuro che dovrebbe essere corretto: questo risolverà direttamente tutti i tuoi potenziali problemi, tra cui barra di chiusura, richiesta non sicura o sottodominio non Web.

Abbiamo anche bisogno di un ulteriore pezzo di codice per assicurarci che qualsiasi richiesta a una directory finisca con una barra, poiché gli URL delle directory dei siti Web normali finiranno con uno di essi.

# 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 forza HTTPS e forza WWW htaccess

Ora che il problema della barra finale è stato risolto, concentriamoci sul HTTPS mancante o sul sottodominio Web mancante che può accadere, con un reindirizzamento htaccess da http a https con force www.

Il modo più semplice ed elegante per realizzarlo è quello di identificarli entrambi nella stessa identica condizione di accesso.

Questo viene fatto facilmente abbinando gli URL che non iniziano con il sottodominio Web o qualsiasi richiesta che non includa HTTPS e reindirizzando l'URL corretto del nostro sito Web, che include sia la connessione sicura sia il sottodominio 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]

Forza HTTPS e WWW ma consenti localhost

Ora, va tutto bene, ma cosa succede quando effettivamente proviamo a raggiungere il nostro sito Web in modalità di sviluppo sul server locale XAMPP, ma tutte le nostre richieste a http: // localhost ora vengono reindirizzate a https://www.mysite.com - la nostra versione di produzione?

Bene, la soluzione è riutilizzare il pezzo di codice precedente che applica la versione HTTPS e WWW della richiesta URL, ma avviarlo escludendo dalle richieste di controllo indirizzate a localhost o al nostro indirizzo IP locale, che è 127.0.0.1.

Ed è tutto, ora abbiamo un bellissimo pezzo di codice che risolverà tutti i nostri problemi!

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

Reindirizza HTTP a HTTPS htaccess, forza WWW e rimuovi la barra finale

L'intero pezzo di codice riportato di seguito può essere utilizzato nel file HTACCESS per ottenere quanto segue:

Reindirizza HTTP a HTTPS in htacces,

Forza WWW in htaccess,

Rimuovi la barra finale nell'URL.

Naturalmente, non dimenticare di modificare l'URL del sito Web per quello che ti riguarda.

Può anche essere utilizzato per reindirizzare il sito Web a un altro sito Web semplicemente modificando gli URL di destinazione sull'altro miglior sito Web di hosting Web economico:

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

Galleria fotografica

Articoli simili

Commentoi (0)

lascia un commento

Find the perfect Freelance Services for your business from fiverr.com!
Find the perfect Freelance Services for your business from fiverr.com!