1. Úvod
  2. Hosting
  3. Souhrn o .htaccess
  1. Úvod
  2. Servery
  3. Souhrn o .htaccess

Souhrn o .htaccess

Soubor .htaccess je důležitý konfiguračí soubor, který může přepsat serverovou konfiguraci nebo poskytnout/zablokovat přístup do různých složek, přepsat URL atd.

V této nápovědě si ukážeme nejčastější příklady využítí .htaccessu, abyste měli všechny důležité přiklady na jednom místě a kdykoliv k dispozici.

Před změnou konfigurace si vždy upravovaný .htacces zazálohujte! V případě chybné konfigurace můžete vyřadit z provozu svojí aplikaci.

Jak soubor vytvořit/editovat

Soubor .htaccess se může 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 aplikaci /www.

Pokud soubor nevidíte, tak je buďto skrytý a nebo jej musíte vytvořit. Stačí vytvořit pouze nový soubor s názvem „.htaccess“ a je hotovo.

Přesměrování 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 zapnuttý 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í šifrovaného spojení https (SSL)

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ší verze

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Whitelist pro IP adresy

Občas se hodí povolit přístup na web pouze pro určité IP adresy a vše ostatní zablokovat. Musíte tento kus kódu vložit na začátek.

Order Deny,Allow
Deny from all
Allow from 1.22.33.4
Allow from 1.22.33.5

Blacklist pro IP adresy

Podobné whitelistu akorát s tím rozdílem, že tady pouze blokujeme konkrétní adresy a ostatní provoz pouštíme. Zase by kus kódu měl být na začátku.

Order allow,Deny
Deny from 111.22.3.4
Deny from 111.22.3.
Allow from all

Přesměrování subdomény do adresáře (301)

RewriteCond %{HTTP_HOST} ^subdomena\.vasedomena\.cz$
RewriteRule ^(.*)$ http://vasedomena.cz/adresar [R,L]

Takto pomocí 301 přesměrujete uživatele ze subdomena.vasedomena.cz do adresáře na vasedomena.cz/adresar

Přesměrování subdomény do adresaře

RewriteCond %{HTTP_HOST} ^neco\.domena\.cz [NC]
RewriteCond %{REQUEST_URI}  !^/adresar/
RewriteRule ^(.*)$ /adresar/$1 [L,QSA]

Stejný cíl, jiný způsob provedení přesměrování subdomény do adresáře.

Přesměrování staré domény na novou

RewriteCond %{HTTP_HOST} ^stara-domena\.cz [NC]
RewriteRule ^(.*)$ http://www.nova-domena.cz/$1 [R=301,QSA,L]

Občas se hodí přesměrovat starou doménu na novou.

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 adressáře www.vase-domena.cz/adresar na www.vase-domena.cz bez zobrazení cesty adresáře.

Poslední změna: Leden 7, 2019

Pomohla ti tato nápověda?

Související články nápovědy