1. Home
  2. Servery pokročilé
  3. Souhrn o .htaccess
  1. Home
  2. Hosting
  3. Souhrn o .htaccess

Souhrn o .htaccess

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 to 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.

Updated on 17.7.2023

Was this article helpful?

Related Articles