Přesměrování z HTTP na HTTPS

Velice jednoduchý kód, který vložíte do souboru .htaccess:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Toto zajistí, že pokud zadáme URL s http://, automaticky nás to přesměruje na verzi s https://. Dejte si pozor, abyste tak měli nastaveny i Vaše webové stránky, potažmo PHP skripty! Jinak by vznikla smyčka přesměrování – web by chtěl HTTP a .htaccess zase HTTPS (a Vy také).

Kód přesměrovává jak doménu, tak i obsah za lomítkem – pokud to nechcete, odstraňte {REQUEST_URI}.

[R=301] dává prohlížeči vědět, že se jedná o permanentní přesměrování. To znamená, že prohlížeč se již sám nebude snažit navštívit HTTP verzi, ale rovnou bude chodit na verzi s HTTPS.

Můžeme využít také obdobný zápis .htaccess. Toto použijte, pokud se Vám korektně nepřesměrovávají podstránky za lomítkem:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

Nechceme-li používat .htaccess, můžeme do hlavičky každého PHP souboru vložit následující:

<?php
if ($_SERVER['HTTP'] == "on") {
$url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
header("Location: $url");
exit;
}
?>

Odstranění .php, .html, .htm přípon souborů pomocí .htaccess

Dnes si ukážeme návod na to, jak pomocí souboru .htaccess skrýt přípony souborů. Je to jednoduché, do souboru .htaccess přidejte následující řádky a vždy jen změňte to, jakou příponu chcete skrýt. Ukážu pár příkladů…

Skrytí přípony .php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

 

Skrytí přípony .html

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

 

Skrytí přípony .htm

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.htm [NC,L]

 

Výše uvedené příklady vždy virtuálně odstraní přípony souborů. To znamená, že pokud budeme mít soubor kontakt.php  na doméně example.com, tak pro něj budou stále existovat dvě adresy

  • example.com/kontakt.php
  • example.com/kontakt

Obě dvě URL zobrazí ten samý obsah souboru kontakt.php uloženém na FTP.

Přesměrování všech odkazů na novou doménu – .htaccess

Pokud stěhujete své webové stránky na novou doménu, je nejlepší zachovat všechny odkazy, které na Váš web vedou tak, aby se i po přestěhování na jinou doménu zobrazil stejný obsah.

Samozřejmě u některých CMS to není snadné, ale jde to snad všude. A to i za cenu ručního přepisování. Cenu to nemá snad u stovek URL.

Vlastníte doménu mujweb.cz na kterém se nachází Vaše prezentace, rozhodli jste se ale, že celý web přestěhujete na novou doménu mujnovyweb.cz. Co s tím? Na mujweb.cz vede spousta zpětných odkazů a ty určitě nechcete jen tak zahodit…

Řešením je přesměrování v souboru .htaccess!

Ano, jen je potřeba mít pro starou doménu stále aktivní webhosting, ale to v dnešní době (2016) multihostingů a VPS již není problém. V rootu (kořenové složce) domény mujweb.cz vytvořte soubor .htaccess a vložte do něj

RewriteEngine On
RewriteRule ^(.*)$ http://mujnovyweb.cz/$1 [R=301,L]

A to je všechno!

Stačí jen změnit http://mujnovyweb.cz za novou URL vaší domény.

Nyní při zadání http://mujweb.cz to klienta automaticky přesměruje na http://mujnovyweb.cz. Dokonce i při zadání http://mujweb.cz/podstranka se to také přesměruje na http://mujnovyweb.cz/podstranka.

Mod_rewrite – hezké url adresy

Taky chcete mít na svém webu ty hezké URL adresy? Řeší se pomocí .htaccess a mod_rewrite. Váš hosting ale musí podporovat soubor .htaccess. Tady je kód, obarvil jsem ho a níže si ho vysvětlíme. Jsou dva typy – přesměrování a podstrčení.

Přesměrování

Redirect 301 uplne-dlouhy-nazev-souboru-kontakt.php kontakt

Nyní vysvětlení:

Redirect 301 je název „procesu“ – nechte tak, jak to tady je

uplne-dlouhy-nazev-souboru-kontakt.php je adresa souboru tak, jak ho vidíme v adresáři – změňte si

kontakt je „přejmenovaný soubor uplne-dlouhy-nazev-souboru-kontakt.php – jen se v adresním řádku objeví kontakt. Název může být libovolný – změňte si.

 

 

Podstrčení

RewriteEngine on
RewriteRule napsana-stranka podstrcenastranka.php

napsana-stranka je stránka, která je v adresním řádku – ta se nezmění

podstrcenastranka.php je název souboru, tak jak se jmenuje v adresáři a obsah této stránky se zobrazí po zadání napsané stránky.

Dotazy prosím směřujte do komentářů. Děkuji