.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-90-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-90-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 … ... 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 důsledku … ... 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ě … ... 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, … ... podrobnosti ... JQuery knihovna JavaScriptu jQuery jQuery je javascriptová knihovna s širokou podporou prohlížečů, která klade důraz na interakci mezi JavaScriptem a HTML. Byla vydána Johnem Resigem v lednu 2006 na newyorském BarCampu. jQuery je svobodný a otevřený software pod licencí MIT. Stejně jako CSS oddělují „zobrazovací“ charakteristiky od struktury HTML, jQuery odděluje „chování“ od struktury HTML. Například místo přímé specifikace on-click události přímo v HTML kódu tlačítka by stránka řízená jQuery napřed našla vhodný … ... 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 ... JSON JavaScript Object Notation je způsob zápisu dat nezávislý na počítačové platformě. JSON JavaScript Object Notation (JavaScriptový objektový zápis, JSON) je způsob zápisu dat (datový formát) nezávislý na počítačové platformě, určený pro přenos dat, která mohou být organizována v polích nebo agregována v objektech. Vstupem je libovolná datová struktura (číslo, řetězec, boolean, objekt nebo z nich složené pole), výstupem je vždy řetězec. Složitost hierarchie vstupní proměnné není teoreticky nijak omezena. Charakteristika JSON umí pojmout pole hodnot (neindexované i … ... 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 … ... podrobnosti ... SEO (Search Engine Optimization) optimalizace pro vyhledávač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í … ... podrobnosti ... digitální fotografování na web, akcí, koncertů, závodů, oslav, osob, ... Nemáte-li potřebné digitální fotografie, rádi vám nafotíme veškeré podklady. Nemáte-li digitální fotografie potřebné na vaše internetové stránky (letáky, ...), rádi vám nafotíme veškeré podklady, které budou třeba. Je pravda, že spousta pěkných fotografií se dá dnes pořídit (i zdarma) v internetových fotobankách. Použití zdařilé vlastní fotografie zvyšuje důvěryhodnost a originalitu Vašich stránek. Zákazníci i vyhledavače ocení vlastní originální fotografie. Používejte fotografie Vaší firmy, Vašich kontaktních osob (vedení firmy, zaměstnanců, ...), … ... podrobnosti ... natáčení a střih videí, videospotů, videoklipů, videoreportáží, ... Video je médiem a marketingovým nástrojem budoucnosti Video je médiem a marketingovým nástrojem budoucnosti. Nikdo už dnes nechce moc číst ani prohlížet si fotografie, ale všichni si raději prohlédnou krátký videonávod, nebo krátké představení Vaší firmy, Vašeho produktu, či Vaší služby. I sociální sítě (Facebook, ...) více upřednostňují příspěvky s videem, před příspěvky pouze s fotkou, nebo úplně bez fotky. Před několika lety jsme se začali věnovat natáčení a střihu videoreportáží pro zpravodajský portál Příbram.cz a také pro náš … ... podrobnosti ...
Informace o cookies Ochrana osobních údajů
2007 ....... 2018 ....... 2024 © kao.cz
webdesign | websystem | KAO.cz
Nastavení souborů cookies
Na našich webových stránkách používáme soubory cookies. Některé z nich jsou nezbytné, zatímco jiné nám pomáhají vylepšit tento web a váš uživatelský zážitek. Souhlasíte s používáním všech cookies?
Informace o cookies Ochrana osobních údajů
Souhlasím Přizpůsobit
Podrobné nastavení cookies « zpět
Soubory cookie používáme k zajištění základních funkcí webu a ke zlepšení vašeho uživatelského zážitku. Souhlas pro každou kategorii můžete kdykoliv změnit.

Nezbytné cookies
Technické cookies jsou nezbytné pro správné fungování webu a všech funkcí, které nabízí. Tyto soubory zajišťují uchovávání produktů v košíku, zobrazování seznamu oblíbených výrobků, správné fungování filtrů, nebo přihlášení. Bez těchto souborů cookies nebude webová stránka správně fungovat a ve výchozím nastavení jsou povoleny a nelze je zakázat. Tyto soubory cookies neukládají žádné osobně identifikovatelné informace.
Cookies pro marketing
Umožňují nám sledovat souhrnné informace o návštěvnosti stránek a využívání různých funkcí. To nám pomáhá naše weby zlepšovat tak, aby Vám lépe sloužily. Analytické cookies jsou nastavovány třetími stranami - Google Analytics.
Personalizované soubory cookies používáme, abychom přizpůsobili náš web potřebám a zájmům našich zákazníků a připravili tak pro vás lepší nákupní zkušenosti. Díky personalizovaným cookies Vám můžeme nabídku uzpůsobit přímo na vás. Díky použití personalizovaných cookies se vyhnete neodpovídajícím doporučením výrobků nebo neužitečné mimořádné nabídky. Personalizované cookies jsou nastavovány třetími stranami - Facebook Messenger.
Reklamní cookies používáme my nebo naši partneři, abychom Vám mohli zobrazit vhodné obsahy nebo reklamy jak na našich stránkách, tak na stránkách třetích subjektů. Na základě těchto informací není zpravidla možná bezprostřední identifikace Vaší osoby, protože jsou používány pouze anonymizované údaje. Pokud nevyjádříte souhlas, nebudete příjemcem obsahů a reklam přizpůsobených Vašim zájmům a potřebám. Reklamní cookies jsou nastavovány třetími stranami - Facebook pixel.

Povolit všechny kategorie cookies Povolit vybrané kategorie cookies