- Co je to .htaccess?
- Příklady .htaccess
- Přesměrování uživatelů na konkrétní chybovou stránku
- Přidání vlastní hlavičky a hodnoty
- Blokování uživatelů na základě IP
- Blokování odkazovačů (ochrana hotlinků)
- Přidání typů MIME
- Využití ukládání do mezipaměti prohlížeče
- Zapnutí funkce Gzip
- Odmítnutí metod požadavků HTTP
- Provedení přesměrování 301
- Zapnutí CORS
Co je to .htaccess?
Soubor .htaccess
(známý také jako soubor pro přístup k hypertextu) se používá k definování specifických konfigurací pro webové servery běžící na Apache. Tento konfigurační soubor ovlivňuje adresář, ve kterém je uložen, i všechny podadresáře v tomto adresáři. Pokud je například soubor .htaccess
umístěn v kořenovém adresáři, ovlivní celý web. Na druhou stranu, pokud je soubor umístěn v určitém adresáři, ovlivní pouze tento adresář a všechny podadresáře v něm.
Některé platformy CMS, jako je WordPress a Drupal, také obsahují soubory .htaccess
, které umožňují zadat určité konfigurace platné pouze pro daný web. Soubor .htaccess
lze použít k dosažení různých věcí, včetně:
- Provedení přesměrování
- Přizpůsobení chybových stránek
- Omezení uživatelů na základě IP adresy
- Přidání typů MIME
- Nastavení hlaviček HTTP
- Ochrana určitých složek heslem
Soubor .htaccess
lze použít k dosažení mnohem více, výše uvedený seznam však patří k nejoblíbenějším způsobům použití .htaccess
. V následující části jsou uvedeny různé příklady .htaccess
a způsoby jejich použití v rámci vlastního webu.
Příklady .htaccess
V rámci souboru .htaccess
lze dosáhnout obrovského množství možností konfigurace. V následujícím seznamu je uvedeno několik nejčastěji používaných příkladů.
Přesměrování uživatelů na konkrétní chybovou stránku
Na základě stavového kódu, který vrací konkrétní soubor nebo stránka, můžete uživatele přesměrovat na vlastní chybovou stránku. Níže uvedený příklad ukazuje několik variant, které můžete použít. Každá z nich závisí na vráceném stavovém kódu.
ErrorDocument 403 /forbidden.htmlErrorDocument 404 /notfound.htmlErrorDocument 500 /servererror.html
Přidání vlastní hlavičky a hodnoty
Vlastní hlavičky HTTP lze přidat také prostřednictvím souboru .htaccess
. Existuje několik možností syntaxe, například set
, která nahradí jakoukoli předchozí hlavičku se stejným názvem, add
, která přidá hlavičku, i když existuje jiná se stejným názvem. Pro více informací navštivte průvodce hlavičkami stránek Apache.
Header set X-Custom "Custom Value"
V uvedeném příkladu odpovídá text X-Custom
hlavičce HTTP, která bude vrácena v odpovědi HTTP, zatímco text Custom Value
odpovídá hodnotě této konkrétní hlavičky.
Blokování uživatelů na základě IP
Pro účely zabezpečení můžete v souboru .htaccess
blokovat uživatele na základě jejich IP. V níže uvedeném příkladu jsou blokovány dvě IP adresy. Můžeme se také rozhodnout, že nebudeme uvádět poslední číslici IP adresy, což bude mít za následek, že budou blokovány všechny IP adresy, které obsahují první tři číslice.
order allow,denydeny from 255.x.x.xdeny from 123.x.x.xallow from all
Blokování odkazovačů (ochrana hotlinků)
Blokování odkazovačů, známé také jako ochrana hotlinků, je metoda používaná k blokování určitých odkazovačů, které odkazují na aktiva vašeho webu a tím kradou šířku pásma. Pomocí níže uvedeného úryvku můžete definovat, které domény nesmí odkazovat na váš obsah, a proto se jim zobrazí chyba 403 Forbidden
.
RewriteCond %{HTTP_REFERER} unwanteddomain\.com RewriteCond %{HTTP_REFERER} unwanteddomain2\.comRewriteRule .* -
Podobné funkce lze dosáhnout také prostřednictvím ovládacího panelu KeyCDN. Chcete-li se dozvědět, jak implementovat ochranu hotlinků ve své zóně KeyCDN, navštivte našeho průvodce Odkazovači zóny.
Přidání typů MIME
Typy MIME definují, na co se vztahuje konkrétní přípona souboru. Proto je někdy nutné nastavit je v souboru .htaccess
, abyste webový server informovali, na jaký typ souboru odkazujete. Úplný seznam typů MIME najdete na stránce Seznam typů MIME.
AddType image/gif .gif .GIF
Využití ukládání do mezipaměti prohlížeče
Soubor .htaccess
lze také použít ke zlepšení výkonu webových stránek využitím ukládání do mezipaměti prohlížeče. U každého typu souboru lze definovat konkrétní hodnotu expirace. Můžete definovat vlastní seznam typů souborů a změnit každou jejich hodnotu expirace, nicméně následující úryvek je dobrým výchozím bodem.
## EXPIRES CACHING ##<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month"</IfModule>## EXPIRES CACHING ##
Zapnutí funkce Gzip
Zapnutí funkce Gzip na serveru původu pomáhá zlepšit výkon vašich prostředků, protože jsou komprimovány a mohou tak být doručeny rychleji. Můžete definovat vlastní seznam typů MIME, které mají být Gzipovány, nicméně níže uvedený příklad je dobrým výchozím bodem. Chcete-li se dozvědět více o výhodách technologie Gzip a o tom, jak funguje, přečtěte si náš článek Povolit kompresi Gzip.
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml</IfModule>
Odmítnutí metod požadavků HTTP
Existuje několik metod požadavků HTTP, které se používají k dosažení různých výsledků. Pokud existují určité metody HTTP, které nechcete, aby uživatel na vašem webu používal, můžete je zakázat pomocí .htaccess
.
RewriteCond %{REQUEST_METHOD} !^(HEAD|OPTIONS|POST|PUT)RewriteRule .* -
Provedení přesměrování 301
Pokud potřebujete provést přesměrování 301
pro stránku, která se přesunula, lze toho snadno dosáhnout pomocí .htaccess
. Stačí použít níže uvedený úryvek, který vezme první adresu URL (starý odkaz) a přesměruje ji na druhou adresu URL (nový odkaz).
Redirect 301 https://yourwebsite.com/old-page https://yourwebsite.com/new-page
Zapnutí CORS
Zapnutí CORS je klíčové pro poskytování statických prostředků z různých původů. Následující úryvek můžete přidat do souboru .htaccess
, abyste umožnili všem origins sdílet zdroje. V opačném případě, pokud toto není povoleno a váš origin požaduje prostředky od jiného originu, obdržíte chybu CORS. Více informací o CORS najdete v našem článku Jak používat CORS.
<IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css|js|gif|png|jpe?g|svg|svgz|ico|webp)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch></IfModule>
Výše uvedené příklady .htaccess
jsou skvělým výchozím bodem pro ty, kteří ještě nejsou obeznámeni s používáním .htaccess
, ale přesto chtějí provést určité konfigurace webového serveru. Soubor .htaccess
má schopnost provádět celou řadu úloh a je poměrně flexibilní, aby vyhovoval potřebám vašeho webu. Přestože tyto příklady .htaccess
jsou skvělým výchozím bodem, možná budete chtít provést některé pokročilejší konfigurace .htaccess
. Další informace o tomto tématu najdete v článku AskApache – průvodce souborem .htaccess
.
.