Htaccess
Článek pojednávající o konfiguračním souboru .htaccess. Najdete zde i několik příkladů užití.
27.7.2012 12:00 |
Martin 'Windionleaf' Dočekal
| Články autora
| přečteno 11226×
.htaccess
Co je to?
Jedná se o serverový konfigurační soubor, který umožňuje upravovat některé funkce serveru. Zpravidla funguje v místě, kde administrátor serveru dává možnost uživateli, který daný server využívá, nastavit si určité funkce k obrazu svému bez nutnosti o to žádat správce. Administrátorovi se tedy ušetří mnoho práce s přepisováním konfiguračního souboru na serveru. Do .htaccess se píší příkazy pro server, pokud vás zajímají jenom tyto příkazy, některé z nich si uvádíme zde. Htaccess je využíván například serverem Apache a v tomto článku slovem server mám namysli právě Apache.
Rozsah funkčnosti
Pokud .htaccess na serveru používáte, je dobré si uvědomit, že nastavení v něm uvedené platí pro adresář, ve kterém se nachází a pro všechny podadresáře. Tedy pokud budete chtít zakázat přístup z určité IP na celý web umístíte .htaccess do nejvrchnějšího (root) adresáře, ve kterém máte uložené stránky. Chcete-li změnit nastavení, které bylo zděděno z nadřazeného adresáře, musíte vytvořit v tom daném adresáři nový .htaccess a nastavit v něm co chcete změnit.
Jak jej vytvořit
Nejprve se ujistěte, že na vašem serveru je .htaccess povolen, pokud ne, tak kontaktujte správce. Jste-li správcem Vy, je tu pro vás návod pro Linux (konkrétně jsem jej zkoušel na Ubuntu). Jinak můžete tuto pasáž přeskočit.
Jako root otevřete soubor default v adresáři /etc/apache2/sites-available.
sudo gedit /etc/apache2/sites-available/default
Tento příkaz po zadání do terminálu otevře soubor default v programu gedit (pro jiný program stačí přepsat gedit) jako správce.
Poté najdete tuto část:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
A přepište řádek AllowOverride None na AllowOverride all. Soubor uložíte a pak již stačí jen server restartovat:
sudo /etc/init.d/apache2 restart
Vytvoření
Vytvoření tohoto souboru by na Linux/Unix systémech neměl být žádný problém. Stačí normálně vytvořit .htaccess soubor. Tečka na začátku značí v Linux/Unix systémech skrytý soubor, že .htaccess nemá příponu, není zde žádný problém. Ve Windows by vytvoření však již problém mohl být, potom musíte při vytváření souboru napsat před a za uvozovky, tedy: ".htaccess".
Komentáře
Pro zapsání komentářů, tedy textu, který má server ignorovat se užívá značky #:
# Já jsem komentář
Povolení / zakázání IP
Chcete-li omezit přístup určitému IP nebo všem .htaccess je na to výborný nástroj. Jak je psáno výše, tak záleží kam umístíte tento soubor. Předpokládejme, že chceme omezit přístup na celý web, proto uložíme .htaccess do nejvyššího adresáře a napíšeme:
Zákaz přístupu pro všechny
deny from all
Jen snad pro jistotu, nemusíte se bát, že vám toto blokne přístup na FTP.
Zákaz přístupu pro určitou IP
deny from 116.203.134.223
Pokud chcete blokovat určitá IP, která například začínají na 116.203 tak stačí zadat kód níže a server zablokuje všechny takovéto adresy.
deny from 116.203
Povolení přístupu jen pro určitou IP
deny from all
allow from 116.203.134.223
Nejprve jsme zakázali přístup všem, a poté jsme povolili přístup pro adresu 116.203.134.223.
Chybové stránky
Již jste určitě zaznamenali, že některé stránky mají vlastní chybovou stránku. Například pokud není stránka nalezena (404), tak se zobrazí místo standardní stránky stránka vlastní. Funguje to pomocí ErrorDocument. Za ErrorDocument se píše číslo chyby, za číslo následuje cesta k souboru, který se má uživateli zobrazit (také místo cesty lze napsat text bez mezer). Například takto:
ErrorDocument 404 / 404.html
Lehký přehled chybových stránek:
403 – Forbidden / Zakázáno – server zakázal přístup
404 – Not Found / Nenalezeno - server nenašel požadovaný soubor
500 - Internal Server Error – vnitřní chyba serveru
503 - Service Temporarily Unavailable – Dočasně nedostupné. Většinou se tato chyba objeví při vytížení serveru.
Samozřejmě existuje mnoho dalších chybových hlášení (400-414, 500, 501, atd.), ale tyto by mohly nenáročným stačit.
Výchozí stránka adresáře
Jako výchozí stránka je na drtivé většině serverů nastavený index. Samozřejmě se díky .htaccess nemusíte omezovat jen na základní nastavení a udělat si to podle svého, k tomu vám pomůže DirectoryIndex.
DirectoryIndex prvni.php první.html index.php index.html
Tento řádek říká serveru, že má vzít jako výchozí stránku první.php, pokud není, tak první.html a takto pokračuje dále, priorita je tedy zleva. Pochopitelně můžete zadat jenom jednu výchozí stránku.
Výpis adresáře
Tento bod dá se říci navazuje na ten předešlý (Výchozí stránka adresáře), pokud nebyla žádná stránka nalezena může server zobrazit výpis adresáře, to můžete povolit/zakázat pomocí Options Indexes. Dáte-li před Indexes - zakážete zobrazení adresáře a pomocí + povolíte.
Povolí
Options +Indexes
Zakáže
Options -Indexes
Mod_rewrite
Mod_rewrite se používá na podstrkování nebo přesměrování URL. Rozdíl mezi podstrčením a přesměrováním je takový, že u přesměrování uživatel ví o změně adresy. U podstrčení server neinformuje uživatele a rovnou odesílá podstrčený dokument. My si tu ukážeme jak pomocí toho udělat tzv. hezké URL a opět si uvedeme příklad.
Chceme docílit, abychom mohli používat nějaké takovéto URL:
http://priklad.com/clanek21
A server to chápal takto:
http://priklad.com/index.php?id=21
Nejprve tedy povolíme Mod_rewrite:
RewriteEngine on
Potom zadáme podmínku, kterou musí splňovat URL (část URL bez http://priklad.com):
RewriteCond %{REQUEST_URI} clanek(.*)$
Část clanek(.*)$ využívá tzv. regulární výrazy.
$ je znak pro konec řetězce
* je znak, který říká, že předchozí znak se smí libovolněkrát i nulakrát opakovat
. je libovolný znak
Další krok je již podstrčení:
RewriteRule clanek(.*)$ /index.php?id=$1 [L]
$1 je proměnná, která odpovídá závorkám (.*).
[L] značí poslední pravidlo
Výsledek tedy bude vypadat nějak takto:
RewriteEngine on
RewriteCond %{REQUEST_URI} clanek(.*)$
RewriteRule clanek(.*)$ /index.php?id=$1 [L]
Nechcete-li podstrkávat, ale přesměrovávat změňte poslední řádek na:
RewriteRule clanek(.*)$ /index.php?id=$1 [R, L]
R značí přesměrování s kódem 302 - Moved Temporarily „Přesunuto dočasně“
R=301 přesměrování s kódem 301 - Moved Permanently „Přesunuto trvale“
Pomocí .htaccess se dá dělat spoustu věcí, doufám, že jsem zde uvedl alespoň ty nejdůležitější.
Verze pro tisk
|
Nejsou žádné diskuzní příspěvky u dané položky.
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|

Vyhledávání software

Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|