Jak nainstalovat Easy Redirect Script pomocí Bluehost

mám example.co.uk a example.com názvy domén. Hlavní webová stránka je example.co.uk. Mám v doméně certifikát SSL example.co.uk.

Chci .htaccess soubor na 301 přesměruje vše, co vidíte v prohlížeči, na https: bez ovlivnění SEO.

To znamená položky:

  • 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

by všichni předali https://www.example.co.uk.

Toto je jednostránkový web, takže řešení typu „catch-all“ bude fungovat. V ideálním případě bych chtěl, aby to fungovalo pro vícestránkový web. Takže jsem mohl použít .htaccess kód znovu v různých projektech.

Přišel jsem s následujícím, ale převádí se .com záznamů do https://example.com nebo https://www.example.com pak se zastaví:

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] 

  • K přesměrování z obou domén potřebujete platný certifikát SSL https://www.example.com a https://example.com na example.co.uk bez ohledu na to, zda se jedná pouze o přesměrování, je to proto, že vaše skutečná návštěva webové stránky za účelem získání přesměrování a bez jejího přesměrování zastaví uživatele s upozorněním. Můžete použít Cloudflare, který poskytne bezplatný certifikát SSL a přesměruje vše na example.co.uk pomocí pravidel stránky.

Mám v doméně certifikát SSL example.co.uk.

Pravděpodobně to zahrnuje i www subdoména? (To by muselo.)

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

Jak uvedl Simon v komentářích, za účelem přesměrování https://example.com budete potřebovat certifikát SSL, který pokrývá example.com doména. Jinak se prohlížeč zastaví na varování před neplatným certifikátem. (Nastává handshake SSL před váš server je schopen požadavek zpracovat.)

Přišel jsem s následujícím, ale převádí se .com záznamů do https://example.com nebo https://www.example.com pak se zastaví:

Pravděpodobně proto, že dostáváte varování o neplatném certifikátu?

Protože máte více domén, je snadnější vytvořit pravidlo, které přesměruje vše, co je ne kanonický hostitel, spíše než se snažit pozitivně sladit vše, co by mohlo být. Například:

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

To kombinuje HTTPS i www kanonizaci do jednoho pravidla.

The ! předpona na CondPattern neguje výraz, takže je úspěšný, když neodpovídá danému řetězci / regulárnímu výrazu. V tomto případě je úspěšné, když hostitel není řetězec www.example.co.uk. The = předpona je přesná shoda (lexikografické srovnání) operátor, takže zbývající CondPattern je viděn jako obyčejný řetězec, ne jako regulární výraz.

Potřebujete NE (noescape) vlajka? U prvního pravidla jste to vynechali, takže byste přirozeně ztratili všechny speciální znaky, které touto směrnicí stejně prošly.


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] 

Stranou: Protože používáte HTTP_HOST v substituce Zaprvé RewriteRule, pokud jste změnili pořadí těchto pravidel, vyhnuli byste se zbytečnému druhému přesměrování při přístupu http://example.co.uk atd. Protože až po druhém pravidle víte, že je hostitel kanonizován.

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?