Jak na soubor .htaccess: Nejčastější příklady použití

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.

Před změnou konfigurace doporučujeme soubor .htaccess zálohovat! Při chybném nastavení by mohlo dojít k vyřazení serveru nebo aplikace z provozu.

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?

  1. Vytvořte nový soubor a pojmenujete ho .htaccess.
  2. 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.

Pomohl Vám tento článek?

Podobné články