Souhrn o .htaccess
- Obsah
- Jak soubor vytvořit/editovat
- Přesměrování na verzi s „www“ nebo bez
- Vynucení šifrovaného spojení https (SSL)
- Whitelist pro IP adresy
- Blacklist pro IP adresy
- Přesměrování subdomény do adresáře (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 je důležitý konfigurační 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žití .htaccessu, abyste měli všechny důležité příklady na jednom místě a kdykoliv k dispozici.
Před změnou konfigurace si vždy upravovaný .htaccess zálohujte! V případě chybné konfigurace můžete vyřadit z provozu svoji 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. To nejlépe uděláte například z poznámkového bloku. 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 nepotřebujeme…
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 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í š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.
<RequireAll> Require all denied Require ip 1.2.3.4 Require ip 1.2.3.4 Require ip 1.2.3.4 </RequireAll>
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.
<RequireAll> Require all granted Require not ip 1.2.3.4 </RequireAll>
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 adresář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 adresáře www.vase-domena.cz/adresar na www.vase-domena.cz bez zobrazení cesty adresáře.