Jak na soubor .htaccess: Nejčastější příklady použití
- Obsah
- Jak .htaccess vytvořit/editovat
- Přesměrování webu na verzi s „www“ nebo bez
- Vynucení https (šifrované SSL komunikace)
- Přidání IP adres na whitelist
- Blokování IP adres (přidání na blacklist)
- Přesměrování subdomény na adresář (301)
- Přesměrování subdomény do adresáře
- Přesměrování staré domény na novou
- Přesměrování z /adresáře na domena.cz
Soubor .htaccess nepodceňujte. Jde o důležitý soubor, se kterým můžete přepsat konfiguraci serveru, případně poskytnout/zablokovat přístup do různých složek na serveru a provést jiná důležitá nastavení.
V dnešní nápovědě jsme shrnuli nejčastější příklady jeho nastavení. Tak je budete mít všechny na jednom místě a kdykoliv k dispozici.
Jak .htaccess vytvořit/editovat
Soubor .htaccess si můžete vytvořit v každé složce na FTP. Ten hlavní, který se stará o většinu pravidel se nachází v root složce s /www.
Pokud soubor nevidíte, je buďto skrytý, anebo jej teprve musíte vytvořit. Stačí vytvořit nový textový soubor s názvem „.htaccess“ a je hotovo.
To můžete udělat například z poznámkového bloku. Jak na to?
- Vytvořte nový soubor a pojmenujete ho .htaccess.
- Při ukládání zvolte Uložit jako a Všechny soubory. Jinak by se vám uložil soubor jako .txt dokument a ten zrovna nepotřebujeme.
Přesměrování webu na verzi s „www“ nebo bez
Je dobré zůstat konzistentní a nechat si indexovat pouze jednu verzi. Nezáleží na tom jakou.
#Pro většinu konfigurací musíte mít zapnutý RewriteEngine RewriteEngine on
Verze s www
RewriteCond %{HTTP_HOST} ^vasedomena\.cz [NC]
RewriteRule ^(.*)$ http://www.vasedomena.cz/$1 [L,R=301]
Verze bez www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Vynucení https (šifrované SSL komunikace)
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE]
Header set Content-Security-Policy "upgrade-insecure-requests;"
Řádek s hodnotou „upgrade-insecure-requests pomůže vyřešit problém s tzv. mixed contentem.
Další příklad použití:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Přidání IP adres na whitelist
Občas se hodí povolit přístup na web pouze pro určité IP adresy a všechny ostatní zablokovat. Stačí, když následující snippet kódu vložíte na začátek souboru .htaccess.
<RequireAll>
Require all denied
Require ip 1.2.3.4
Require ip 1.2.3.4
Require ip 1.2.3.4
</RequireAll>
Blokování IP adres (přidání na blacklist)
Blacklist je podobný whitelistu, akorát s rozdílem, že zde pouze blokujeme konkrétní IP adresy a ostatním provoz spustíme. Znovu stačí kus následujícího kódu vložit na začátek souboru.
<RequireAll>
Require all granted
Require not ip 1.2.3.4
</RequireAll>
Přesměrování subdomény na adresář (301)
RewriteCond %{HTTP_HOST} ^subdomena\.vasedomena\.cz$
RewriteRule ^(.*)$ http://vasedomena.cz/adresar [R,L]
Kód 301 říká prohlížeči i botům, že se konkrétní stránka přesunula natrvalo na novou adresu. Pomocí stavového kódu 301 můžete například přesměrovat uživatele ze subdomena.vasedomena.cz do adresáře na vasedomena.cz/adresar.
Přesměrování subdomény do adresáře
Jde o stejný cíl, avšak jiný způsob přesměrování subdomény do adresáře.
RewriteCond %{HTTP_HOST} ^neco\.domena\.cz [NC]
RewriteCond %{REQUEST_URI} !^/adresar/
RewriteRule ^(.*)$ /adresar/$1 [L,QSA]
Přesměrování staré domény na novou
Občas se hodí přesměrovat starou doménu na novou. Například, když vytváříte nové webové stránky.
RewriteCond %{HTTP_HOST} ^stara-domena\.cz [NC]
RewriteRule ^(.*)$ http://www.nova-domena.cz/$1 [R=301,QSA,L]
Přesměrování z /adresáře na domena.cz
RewriteCond %{HTTP_HOST} ^(www.)?vase-domena.cz$
RewriteCond %{REQUEST_URI} !^/adresar/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /adresar/$1
RewriteCond %{HTTP_HOST} ^(www.)?vase-domena.cz$
RewriteRule ^(/)?$ adresar/index.php [L]
Pomocí tohoto kódu dokážete přesměrovat návštěvníky z adresáře www.vase-domena.cz/adresar na www.vase-domena.cz bez zobrazení cesty adresáře.