LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> 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 8044×

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

Příklady

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

pridej.cz

 

DISKUZE

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ů

23.5.2018 20:55 /Ondřej Čečák
Od pátku 25.5. proběhne na Fakultě informačních technologií ČVUT v Praze openSUSE Conference. Můžete se těšit na spostu zajímavých přednášek, workshopů a také na Release Party nového openSUSE leap 15.0. V na stejném místě proběhne v sobotu 26.5. i seminář o bezpečnosti CryptoFest.
Přidat komentář

20.5.2018 17:45 /Redakce Linuxsoft.cz
Ve čtvrtek 31. května 2018 připravuje webový magazín BusinessIT ve spolupráci s Best Online Média s.r.o. pátý ročník odborné konference Firemní informační systémy 2018. Akce proběhne v kongresovém centru Vavruška (palác Charitas), Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00 hod. dopoledne do cca 15 hod. odpoledne. Konference je zaměřena na efektivní využití firemních informačních systémů a na to, jak plně využít jejich potenciál. Podrobnější informace na webových stránkách konfrence.
Přidat komentář

14.5.2018 7:28 /František Kučera
Květnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 17. 5. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: Audio – zvuk v GNU/Linuxu.
Přidat komentář

7.5.2018 16:20 /František Kučera
Na stránkách spolku OpenAlt vyšla fotoreportáž Pražské srazy 2017 dokumentující srazy za uplynulý rok. Květnový pražský sraz na téma audio se bude konat 17. 5. 2018 (místo a čas ještě upřesníme).
Přidat komentář

17.4.2018 0:46 /František Kučera
Dubnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 4. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tématem tohoto srazu bude OpenStreetMap (OSM) aneb svobodné mapy.
Přidat komentář

16.3.2018 22:01 /František Kučera
Kulatý OpenAlt sraz v Praze oslavíme klasicky: u limonády a piva! Přijďte si posedět, dát si dobré jídlo a vybrat z mnoha piv do restaurace Kulový blesk, který najdete v centru Prahy nedaleko metra I. P. Pavlova na adrese Sokolská 13, Praha 2. Sraz se koná ve čtvrtek 22. března a začínáme v 18:00. Heslo: OpenAlt. Vezměte s sebou svoje hračky! Uvítáme, když si s sebou na sraz vezmete svoje oblíbené hračky. Jestli máte nějaký drobný projekt postavený na Arduinu, nějakou zajímavou elektronickou součástku, či třeba i pěkný úlovek z crowdfundingové akce, neváhejte. Oslníte ostatní a o zábavu bude postaráno.
Přidat komentář

13.2.2018 0:41 /František Kučera
Únorový pražský sraz OpenAltu se koná 15. 2. 2018 a tentokrát se vydáme na návštěvu do jednoho pražského datacentra. Sejdeme se v 17:50 v severovýchodní části nástupiště tramvajové zastávky Koh-I-Noor. Po exkurzi se přesuneme do restaurace U Pštrosa (Moskevská 49), kde probereme tradiční témata (svobodný software a hardware, DIY, CNC, SDR, 3D tisk…) a tentokrát bude k vidění i IoT brána od The Things Network.
Přidat komentář

11.2.2018 23:11 /Petr Ježek
Hledáte lehký a rychlý prolížeč PDF souborů? Pokud vás již omrzelo čekat na načítání stránek či jiné nešvary, zkuste xreader.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

20.2.2018 18:48 / Ivan Majer
portal

20.2.2018 15:57 / Jan Havel
Jak využíváte služby cloudu v podnikání?

16.1.2018 1:08 / Ivan Pittner
verejna ip od o2 ubuntu

15.1.2018 17:26 / Mira Harvalik
Re: Jak udělat HTML/Javascript swiping gallery do mobilu?

30.12.2017 20:16 / Michal Knoll
odmocnina

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2018) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze