Domanda

Sto usando il seguente mod_rewrite nel file .htaccess per reindirizzare il mio dominio in modo permanente

DA

https://domain.com

a

https://www.domain.com

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
.

Come dovrei I mod_rewrite per reindirizzare il mio sottomarino

DA

https://subdomain.domain.com

a

https://www.subdomain.domain.com

Intendo come posso reindirizzare il dominio del 3 ° livello da https:// a https://www. utilizzando .htaccess mod_rewrite?

Grazie,

È stato utile?

Soluzione

Cambia la tua prima regola al seguente.Questo dovrebbe reindirizzare il browser all'URL corretto in 1 hop.Nella seconda condizione corrispondiamo a www. se è davanti all'URL, o nulla nel primo gruppo di acquisizione, e tutto ciò che viene lasciato nel secondo gruppo di acquisizione.Questo può sembrare contro-intuitivo, ma ciò si assicura che non abbiamo generatodicetagcode due volte davanti all'URL, ma anche essere in grado di premere www. al nome host se non è già lì.www. è solo un modo di scrivere "Abbina tutto" (o: "Abbina ogni stringa che inizia", che è anche il caso per una stringa vuota).

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.|)(.*)$
RewriteRule ^ https://www.%2%{REQUEST_URI} [L,R=301]
.

Quindi è necessaria una seconda regola per gestire le richieste già su HTTPS:

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
.

Altri suggerimenti

Questa singola regola dovrebbe gestire i domini principali e secondari entrambi:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
.

Assicurati che sia posizionato come prima regola in DocumentRoot/.htaccess

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top