V dnešní době existuje spoustu cms, které mnohdy ale vůbec nepotřebujeme a stačila by nám pouze základní funkčnost k úpravě url, přesměrování. K tomuto účelu je ideální .htaccess soubor, který nám se všemi těmato úpravami umí pomoct.
Dnešní doba nabízí spoustu jednoduchých cms, občas ale i toto může být pro nás zbytečné a chceme pouze uhladit url naší jednoduché struktury. K tomuto účelu lze využít .htaccess soubory, které nám s těmi úpravami pomohou. Jediná podmínka je, že web musí běžet někde na Apache serveru, to ale splňuje každý webhosting.
.htaccess je konfigurační soubor, který může být umístěn v hlavní složce, ale také v nějaké z podsložek, aby upravovala práci ve složce na potřebnou funkčnost. Tento konfigurační soubor nabízí spoustu možností, ale tento článek se zaměřuje hlavně na použití u malých webů. Na webu je tomuto tématu věnována celá série. Tento článek se tak zaměřuje na konkrétní a praktické využití tohoto souboru.
Úprava url adresy
Pokud máme php nebo html soubory a chtěli bychom jim jen odstranit jejich koncovku z url, tak stačí využít tento jednoduchý kód.
# Apache Rewrite Rules
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Pridani koncoveho lomitka
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]
# Odstraneni .html koncovky
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^\.]+)/$ $1.html
# End of Apache Rewrite Rules
</IfModule>
Kód je velmi jednoduchý a změna z html na php je v pouhém přejmenování dvou řádků.
HTTPS dnešní doba vyžaduje
V této době je https už prakticky vyžadováno. Soubor htaccess nabízí i na toto jednoduché přesměrování.
# https presmerovani
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.vase-domena.cz/$1 [R,L]
Přesměrování staré url adresy na novou
Htaccess soubory se dají využívat i na přesměrování, které je výhodné využít například při přesměrování 301 (trvalé přesměrování), které se využije, když změníte URL na nějaké stránce.
Redirect 301 /puvodni-adresa /nova-adresa
Kódů na přesměrování je spousta a je tomu věnován jeden článek ze seriálu ohledně htaccess.
A co chyby?
Další užitečné přesměrování může být například u chyby 404 nebo 405, které vždy uživatele přesměruje na zvolené url, které se stane při chybě.
ErrorDocument 404 /chybova-stranka
I tomuto tématu jsme se věnovali ve 2. článku ze série htaccess. Koho tedy zajímá víc, jak pracovat s chybami, tak rozhodně si přečíst ten článek.
Jak výsledný kód může vypadat?
Redirect 301 /puvodni-adresa /nova-adresa
Redirect 302 /puvodni-adresa /nova-adresa
# Apache Rewrite Rules
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# https presmerovani
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.vase-domena.cz/$1 [R,L]
# Pridani koncoveho lomitka
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]
# Odstraneni .html koncovky
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^\.]+)/$ $1.html
# End of Apache Rewrite Rules
</IfModule>
ErrorDocument 404 /chybova-stranka
ErrorDocument 405 /chybova-stranka