Slik installerer du Easy Redirect Script ved hjelp av Bluehost

jeg har example.co.uk og example.com domenenavn. Hovednettstedet er example.co.uk. Jeg har et SSL-sertifikat på domenet example.co.uk.

Jeg vil ha .htaccess fil til 301 omdirigere alt sett i en nettleser til https: uten å påvirke SEO.

Dette betyr oppføringer av:

  • example.co.uk
  • example.com
  • www.example.com
  • www.example.co.uk
  • http://example.co.uk
  • http://example.com
  • http://www.example.co.uk
  • http://www.example.com
  • https://example.co.uk
  • https://example.com
  • https://www.example.com

vil alle videresende til https://www.example.co.uk.

Dette er en enkeltsides side, så "catch-all" -type-løsning vil fungere. Ideelt sett vil jeg at dette skal fungere for et flersidig nettsted. Så jeg kunne bruke .htaccess kode igjen i forskjellige prosjekter.

Jeg kom på følgende, men det konverterer .com oppføringer til https://example.com eller https://www.example.com stopper deretter:

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R] RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC,OR] RewriteCond %{HTTP_HOST} ^example\.co.uk$ [NC] RewriteRule ^ https://www.example.co.uk%{REQUEST_URI} [L,NE,R] 

  • Du trenger et gyldig SSL-sertifikat på begge domener å omdirigere fra https://www.example.com og https://example.com til example.co.uk uansett om det bare er en viderekobling, er dette fordi du faktisk besøker et nettsted for å få viderekoblingen og ikke har en, vil stoppe brukeren med en advarsel. Du kan bruke Cloudflare som vil gi et gratis SSL-sertifikat og omdirigere alt til example.co.uk nettsted ved hjelp av sideregler.

Jeg har et SSL-sertifikat på domenet example.co.uk.

Antagelig dekker dette også www underdomenet? (Det må.)

https://example.com https://www.example.com 

Som nevnt av Simon i kommentarer, for å omdirigere https://example.com du trenger et SSL-sertifikat som dekker example.com domene. Ellers vil nettleseren stoppe ved advarselen om ugyldig sertifikat. (SSL-håndtrykket oppstår før serveren din kan behandle forespørselen.)

Jeg kom på følgende, men det konverterer .com oppføringer til https://example.com eller https://www.example.com stopper deretter:

Antagelig fordi du får en ugyldig advarsel om sertifikat?

Siden du har flere domener, er det kanskje lettere å lage en regel som omdirigerer alt som er ikke den kanoniske verten, i stedet for å prøve å positivt matche alt det kan være. For eksempel:

RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !=www.example.co.uk RewriteRule ^ https://www.example.co.uk%{REQUEST_URI} [R,L] 

Dette kombinerer både HTTPS og www kanonikalisering i en enkelt regel.

De ! prefikset på CondPattern negerer uttrykket, så det lykkes når det ikke samsvarer med gitt streng / regex. I dette tilfellet er det vellykket når vert er ikke strengen www.example.co.uk. De = prefikset er nøyaktig treff (leksikografisk sammenligning) operatør, så de gjenværende CondPattern blir sett på som en vanlig streng, ikke en regex.

Trenger du den NE (noescape) flagg? Du utelatt det med den første regelen, så du vil naturligvis miste spesialtegn som passerte gjennom dette direktivet uansett.


RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R] RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC,OR] RewriteCond %{HTTP_HOST} ^example\.co.uk$ [NC] RewriteRule ^ https://www.example.co.uk%{REQUEST_URI} [L,NE,R] 

Bortsett fra: Siden du bruker HTTP_HOST i bytte I det første RewriteRule, hvis du byttet rekkefølgen på disse reglene, ville du unngå en unødvendig annen omdirigering når du åpner http://example.co.uk etc. Siden det er først etter den andre regelen at du vet at verten er kanonisert.

fungert for deg: Charles Robertson | Ønsker du å kontakte oss?