Sådan installeres Easy Redirect Script ved hjælp af Bluehost

jeg har example.co.uk og example.com domænenavne. Det vigtigste websted er example.co.uk. Jeg har et SSL-certifikat på domænet example.co.uk.

Jeg vil have .htaccess fil til 301 omdirigere alt set i en browser til https: uden at påvirke SEO.

Dette betyder poster af:

  • 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

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

Dette er et websted med en enkelt side, så "catch-all" -typeløsning fungerer. Ideelt set vil jeg gerne have, at dette fungerer for et flersidet websted. Så jeg kunne bruge .htaccess kode igen i forskellige projekter.

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

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 har brug for et gyldigt SSL-certifikat på begge domæner for at omdirigere fra https://www.example.com og https://example.com til example.co.uk uanset om det bare er en omdirigering, skyldes det, at du rent faktisk besøger et websted for at få omdirigering og ikke har en, stopper brugeren med en advarsel. Du kan bruge Cloudflare, som giver et gratis SSL-certifikat og omdirigerer alt til example.co.uk websted ved hjælp af sideregler.

Jeg har et SSL-certifikat på domænet example.co.uk.

Formentlig dækker dette også www underdomæne? (Det bliver nødvendigt.)

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

Som nævnt af Simon i kommentarer for at omdirigere https://example.com skal du bruge et SSL-certifikat, der dækker example.com domæne. Ellers stopper browseren ved den ugyldige certifikatadvarsel. (SSL-håndtrykket opstår Før din server er i stand til at behandle anmodningen.)

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

Formentlig fordi du får en ugyldig certifikatadvarsel?

Da du har flere domæner, er det måske lettere at konstruere en regel, der omdirigerer alt, hvad der er ikke den kanoniske vært, snarere end at prøve at matche positivt alt, hvad det kunne 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.

Det ! præfiks på CondPattern negerer udtrykket, så det lykkes, når det ikke matcher den givne streng / regex. I dette tilfælde er det vellykket, når vært er ikke strengen www.example.co.uk. Det = præfikset er nøjagtigt match (leksikografisk sammenligning) operatør, så de resterende CondPattern ses som en almindelig streng, ikke en regex.

Har du brug for NE (noescape) flag? Du udeladte det med den første regel, så du ville naturligvis miste alle specialtegn, der alligevel passerede gennem dette direktiv.


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] 

Bortset fra: Da du bruger HTTP_HOST i udskiftning først og fremmest RewriteRule, hvis du skiftede rækkefølgen af ​​disse regler, ville du undgå en unødvendig anden omdirigering, når du åbner http://example.co.uk osv. Da det kun er efter den anden regel, at du ved, at værten er kanoniseret.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?

nyttige oplysninger