.htaccess»  Prostředky


Co je to .htaccess?

.htaccess je soubor, který je beze jména a pouze s příponou .htaccess. Tento soubor se používá k nastavení webového serveru. Může být na stránkách užitečný a nejčastěji se používá k vytvoření stránek, které zobrazují chybu 404. Pro ty, kteří nevědí co je chyba 404, tak si zkuste zadat nesprávnou (jakoukoli) internetovou adresu - chyba 404 je tedy - Stránka nenalezena!



Příklady použití



Nejčastější (které využíváme i my - hlavně z důvodu optimalizace - SEO) jsou chybová hlášení, a vytvoření neexistujících URL stránek a pak také ochrana složek heslem.



Vytvoření souboru

Vytvoření .htaccess souboru není nic mimořádného. Je to obyčejný textový souboru, který lze vytvořit a editovat textovým editorem, jako např. poznámkový blok. Potíž může vzniknout při uložení souboru, protože je to ve skutečnosti soubor bez jména a s příponou dlouho 8 znaků. Obvykle ale lze soubor uložit přímo jako „.htaccess” včetně uvozovek. Když to nepůjde, budete muset soubor uložit pod jiným názvem (např. htaccess.txt), odeslat na server a až potom jej na serveru přejmenovat.



Skryté soubory

Soubory, které nemají jméno a mají jenom tečku a příponu, jsou skryté a není je vidět v normálním seznamu souborů ve složce. FTP klient jako např. Total Commander umí tyto soubory zobrazit, zaškrtnutím položky v menu Síť → FTP - ukázat skryté soubory (show hidden files).



Htaccess - chybová hlášení

Soubor .htaccess umožní zobrazení vlastního chybového hlášení, např. když jse soubor nenalezen. Takže nemusíte zobrazovat hlášení, která poskytuje server. Tohle dělá na stránkách dobrý a profesionální dojem, i když dojde k chybě. Lze například i automaticky odeslat webmasterovi email s upozorněním o chybě.


Pokud znáte číslo chyby, můžete si vytvořit vlastní hlášení. Do souboru .htaccess přidejte příkaz této syntaxe.


ErrorDocument čísloChyby /soubor.html

Například kdybychom měli dokument stranka_nenalezena.html v kořenové složce stránek a chtěli tento dokument použít při chybě 404, zadali bychom:


ErrorDocument 404 /stranka_nenalezena.html

Kdyby dokument nebyl v kořenové složce, ale byl v podsložce chybove_hlasky, potřebovali bychom zadat cestu:


ErrorDocument 404 /chybove_hlasky/stranka_nenalezena.html

Obvyklé chyby jsou:


Potom je zapotřebí jenom vytvořit dokument, který zobrazí chybové hlášení a přidat patřičný příkaz do souboru .htaccess.



.htaccess - Co je to mod_rewrite?

V konfiguraci serveru musí být povoleno použtií modulu mod_rewrite.


Module mod_rewrite je velmi obsažný a má spoustu možností. Zde uvedeme jen pár nejzákladnějších a také nejpoužívanějších (právě v SEO).


Mod_rewrite je module serveru Apache, kterým lze manipulovat s URL požadavky. URL lze různě testovat a měnit, čili „přeložit”. Překlad může být podmíněný nebo pozměněný (upřesněný) vypínači. Výsledkem může být např. přesměrování nebo blokování přístupu.


Přesměrování se používá k různým účelům:


K využití těchto možností je nutno ovládat regulární výrazy v syntaxi Perlu.



Aktivování

Nejprve je nutno RewriteEngine zapnout direktivou:


RewriteEngine on.


Podmínky

Potom mohou následovat podmínky RewriteCond, za kterých se provede překlad URL požadavku. Podmínek může být několik nebo nemusí být žádná.


RewriteCond řetězec regulární_výraz vypínače

Direktiva RewriteCond se skládá ze 4 částí:

  1. identifikátor direktivy RewriteCond

  2. řetězec - smí (mezi jinými) obsahovat název některých systémových proměnných

    • zápis systémových proměnných vypadá takto: %{název proměnné}

    • některé systémové proměnné:

      - HTTP_USER_AGENT
      - HTTP_REFERER
      - HTTP_COOKIE
      - HTTP_HOST
      - REMOTE_ADDR
      - REMOTE_HOST
      - REMOTE_USER
      - REQUEST_METHOD
      - SCRIPT_FILENAME
      - QUERY_STRING
      - DOCUMENT_ROOT

  3. regulární výraz

  4. vypínače - tyto jsou nepovinné a jsou uzavřeny v hranatých závorkách


Když řetězec vyhovuje regulárnímu výrazu, je podmínka splněna.


RewriteCond % {HTTP_REFERER} !^$

Není-li referer prázdný, podmínka je splněna.


RewriteCond % {HTTP_REFERER} !^$
RewriteCond % {HTTP_REFERER} !^http://(www.)?kao.cz/.*$ [NC]
RewriteCond % {HTTP_REFERER} !^http://(www.)?kdno.cz/.*$ [NC]

Není-li referer prázdný a zároveň (AND) není kao.cz a zároveň není kdno.cz, můžeme pokračovat s překladem URL. Vypínač NC v hranatých závorkách znamená, že porovnání není case sensitive (nezáleží na velikosti písmen).



Překlad

RewriteRule je direktiva samotného překladu. Skládá se ze 4 částí:


  1. identifikátor direktivy RewriteRule

  2. regulární výraz

  3. substituce - řětězec, který nahradí URL. Může obsahovat nejenom text cílové URL, ale i další elementy, jako např. zpětné odkazy na regulární výraz.

  4. vypínače - tyto jsou nepovinné a jsou uzavřeny v hranatých závorkách


Regulární výraz se porovnává s aktuálním URL. Aktuální URL je URL požadavku, které ale mohlo být již pozměněno předešlými direktivami. Když URL regulárnímu výrazu vyhovuje, bude na něj aplikován řetězec substituce.


Zde je ukázka jak bude přesměrována stará stránka na novou:


RewriteEngine on RewriteRule ^stara_stranka.html$ nova_stranka.html

V direktivě RewriteRule musí mít staré URL podobu regulárního výrazu, proto vypadá trochu jinak než obvykle. Když URL požadavku vyhovuje regulárnímu výrazu, bude provedena substituce novým URL a dojde k přesměrování. V adrese prohlížeče zůstane původní „staré” URL. Toto URL nemusí vůbec existovat, takže lze tímto skutečné URL skrýt.


Kdybychom chtěli v adreser prohlížeče ukázat cílové URL „nova_stranka.html”, mohli bychom zadat v cílové URL adresu absolutně.


RewriteRule ^stara_stranka.html$ http://kao.cz/sluzby/nova_stranka.html

Protože podmínky a pravidla překladu lze různě kombinovat a dokonce lze vytvořit cyklus, je dobře při konečném překladu naznačit vypínačem L, že další překlad není požadován:


RewriteRule ^stara_stranka.html$ nova_stranka.html [L]


Htaccess - Odstranění querystringu

PHP skripty často používají URL s argumenty (querystring). Tyto nejsou některými vyhledávači snadno zpracovány nebo nemají tak dobré umístění ve výsledcích vyhledávačů (page rank), jako jednoduché URL HTML stránky bez argumentů. Hodilo by se tedy mít jednodušší URL, které by vyhledávačům (a také návštěvníkům) lépe vyhovovalo. Z hlediska page ranku a optimalizace pro vyhledávače (SEO) se sice přesměrování URL nedoporučuje, ale tento typ přesměrování je v pořádku.



Příklad 1

RewriteEngine on RewriteRule ^expo/([0-9][0-9])/$ expoinfo.php?expoID=$1

Tento regulární výraz bude shodný se všemi URL, které začínají na „expo/”, za kterým budou následovat 2 číslice ukončené lomítkem. Např. „expo/45/” bude přesměrováno na „expoinfo.php?expoID=45” a „expo/96/” bude přesměrováno na „expoinfo.php?expoID=96”.


Čísla v hranatých závorkách představují seznamy povolených znaků, t.j. číslic od 0 do 9. Jiné možnosti by byly velká písmena [A-Z] nebo malá písmena [a-z] nebo kombinace velkých a malých písmen [A-Za-z].


Část regulárního výrazu je uzavřena v kulatých závorkách. Toto je část URL, kterou chceme uložit, abychom ji později mohli nahradit něčím jiným. V tomto případě chceme uloženou hodnotu odeslat do PHP stránky jako argument v querystringu. Uložené hodnoty ze závorek budou mít index podle pozice výskytu v regulárním výrazu, počitaje od 1. Je to zpětný odkaz v podobě dolarového znaku a indexu. Zde máme pouze 1 hodnotu ze závorek, takže na tuto se můžeme odkazovat $1. Kdybychom měli takových hodnot více, odkazovali bychom se na první $1, na druhou $2, na třetí $3 atd.


Po přesměrování bude v prohlížeči stránka jako např. „expoinfo.php?expoID=45”, ale uživatel tuto adresu neuvidí. Bude nadále vidět URL, které zadal.



Příklad 2

Zde máme PHP skript s hlavní stránkou „index.php”. Na ostatní stránky se jde přes proměnnou „exe”, které obsahuje číslo stránky. S následujícím přesměrováním se dostaneme např. s pomyslným URL „index/21/” na skutečné URL „index.php?exe=21”.


RewriteEngine on RewriteRule ^index/([0-9][0-9])/$ index.php?exe=$1


Příklad 3

Přidáním vypínače QSA se zajistí, že případné argumenty querystringu budou při přesměrování také připojeny k URL. V tomto příkladu přesměrujeme cokoli obsahující řetězec „index” na URL na jiném serveru „http://rosalynda.php5.cz/index.php”. Případný querystring bude připojen k URL. (Vypínač L znamená poslední direktivu RewriteRule.)


RewriteEngine on RewriteRule index http://rosalynda.php5.cz/index.php [L,QSA]


Příklad 4

Zde vytvoříme z PHP zdánlivé HTML stránky. Např. z „http://www.mujserver/6.html” přesměrujeme na index ve hlavní složce „http://www.mujserver/index.php?exe=6”


RewriteEngine on RewriteRule ^([0-9]+).html /index.php?exe=$1 [QSA,L]

([0-9]+) bude shodný s libovolným počtem číslic kromě nulového. Znaménko „+” znamená, že se musí vyskytnout aspoň 1 číslice.



Příklad 5

Podobné předešlému příkladu, ale názvy pomyslných HTML stránek, mohou obsahovat i písmena nebo pomlčku nebo být docela prázdné. (Hvězdička je shodná i s nulovým počtem výskytů.) Přesměrování bude působit pouze ve stejné složce. Z "http://www.mujserver/podslozka/str.html" přesměrujeme na index.php ve stejné složce "http://www.mujserver/podslozka/index.php?exe=str".


RewriteEngine on RewriteRule ^([0-9a-zA-Z-]*).html$ index.php?exe=$1 [QSA,L]


Příklad 6

Tento příklad obsahuje wildcard, což zastupuje libovolný znak. Přesměruje např. z „index_21.html” na „podslozka/index.php?id=21”


RewriteEngine on RewriteRule ^index_(.*).html /slozka/index.php?id=$1 [QSA,L]


Příklad 7

Zde máme v querystringu 2 argumenty. Přesměrujeme např. z "index-21-boty.html" na "index.php?id=21∏=boty".


RewriteEngine on RewriteRule ^index-(.*)-(.*).html index.php?id=$1∏=$2 [QSA,L]
HTML (HyperText Markup Language) značkovací jazyk pro web Co je to HTML? HTML [HyperText Markup Language] HTML je jazyk, který je základem pro vytváření webových stránek. Základem tohoto jazyka jsou značky, což je text v ostrých závorkách < >. Internetový prohlížeč má za úlohu vyhodnotit a zpracovat text v závorkách. Text mimo tyto závorky je zobrazen na obrazovce. Tagy: Příkazům v ostrých závorkách se říká tagy. Tagy bývají párové (mají počáteční a uzavírací značku : a ). Existují i nepárové tagy - … ... podrobnosti ... CSS (+ DHTML) kaskádové styly Co je to CSS? CSS (Cascading Style Sheets) = kaskádové styly CSS je jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML nebo XML. Jazyk CSS byl navržen standardizační organizací W3C (kde první návrh vypracoval Håkon Wium Lie). Aktuálně byly zatím vydány dvě úrovně specifikace CSS1 a CSS2 a pracuje se na verzi CSS3. Hlavním smyslem je umožnit návrhářům oddělit vzhled dokumentu od jeho struktury a obsahu. Původně to měl umožnit už jazyk HTML, ale v … ... podrobnosti ... PHP (Hypertext Preprocessor) skriptovací programovací jazyk Co je to PHP? PHP (neboli Professional Home Pages, dnes Hypertext Preprocessor) je velmi mocným scriptovacím jazykem, který se využívá na Internetu. Jazyk byl vytvořen někdy v roce 1994. Rasmus Lerdorf si naprogramoval v Perlu jednoduché počítadlo přístupů na jeho stránky. Perl byl (a je) jedním z hlavních programovacích jazyků na Internetu, ale příliš zatěžuje server. Proto toto počítadlo přepsal do jazyka C. Vše samozřejmě dělal pod Unixem (Linuxem) jehož základním kamenem je právě jazyk … ... podrobnosti ... MySQL databázový systém Co je to MySQL? MySQL je švédský databázový server založený na jazyce SQL (structured query language). Je k dispozici jako open source, tedy program šířený zdarma. K dalším výhodám MySQL patří podpora všech hlavních platforem, vysoký výkon i rychlost a vynikající kompatibilita s jinými systémy, zejména se serverovým programem Apache a skriptováním PHP (dohromady tvoří tzv. triádu, trojici programů nejčastěji instalovanou k vytváření databázových aplikací). MySQL se také díky své … ... podrobnosti ... JavaScript objektově orientovaný skr. jazyk Co je to JavaScript? JavaScript je objektově orientovaný skriptový jazyk, vyvinutý firmami Netscape a Sun. JavaScript vychází z programovacího jazyka JAVA. Pokud chcete do vašich stránek přidat java applet, potřebujete k tomu mít vývojové prostředí javy, nebo alespoň kompilátor. Výsledný applet však často poměrně velký a jeho ladění není taky obvzálště jednoduché. Další nevýhodou je také to, že applet tvoří samostatný soubor a do html souboru se vkládá pouze odkaz na tento soubor, popřípadě … ... podrobnosti ... AJAX (Asynchronous JavaScript and XML) moderní technologie tvorby interaktivních webů AJAX = Asynchronous JavaScript And XML Zkratka AJAX pochází z anglického Asynchronous JavaScript and XML. AJAX je moderní technologie často využívaná v současných webových aplikacích. Hodně se o ní mluví, neboť je součástí RIA, nového směru programování vedoucímu k vyššímu uživatelském komfortu a funkčnosti aplikací. AJAX však ve skutečnosti není žádnou novou technologií, pouze novou kombinací technologií již dávno známých, tj. HTML (nebo XHTML), JavaScriptu, XML a XMLHttpRequest. A … ... podrobnosti ... XML (Extensible Markup Language) rozšiřitelný značkovací jazyk XML eXtensible Markup Language = rozšiřitelný značkovací jazyk je obecný značkovací jazyk, který byl vyvinut a standardizován konsorciem W3C. Umožňuje snadné vytváření konkrétních značkovacích jazyků pro různé účely a široké spektrum různých typů dat. Jazyk je určen především pro výměnu dat mezi aplikacemi a pro publikování dokumentů. Jazyk umožňuje popsat strukturu dokumentu z hlediska věcného obsahu jednotlivých částí, nezabývá se sám o sobě vzhledem dokumentu nebo … ... podrobnosti ... SEO (Search Engine Optimization) optimalizace pro vyhledavače Co je to SEO? SEO = search engine optimization (search engine optimalization) = optimalizace internetových stránek pro internetové vyhledávače Co je to internetový vyhledávač? Internetový vyhledávač je internetová stránka (často i součástí portálu), na níž je možné podle zadaných „klíčových slov” vyhledávat na internetu (v obsahu internetových stránek). U mnoha lidí ale panuje mylná představa, že vyhledávače (po stisknutí tlačítka Vyhledat apod.) projíždějí internet … ... podrobnosti ... Flash (Adobe Flash) dříve Macromedia Flash Dnes je tato technologie bohužel zastaralá a téměř nepoužívaná (z důvodu upadající podpory přehrávání v internetových prohlížečích především v mobilních zařízeních - chytřé telefony, tablety). Co je to Flash? Macromedia Flash 5, MX, ... 8, ... Macromedia Flash (dnes Adobe Flash) se v současné době stal faktickým standardem pro tvorbu interaktivních multimediálních animací pro web i CD ROM. Díky použití vektorové grafiky jsou výsledné soubory velmi kompaktní a proto snadno a rychle … ... podrobnosti ...
Informace o cookies Ochrana osobních údajů
2007 ....... 2018 © kao.cz
webdesign | websystem | KAO.cz