Nová verze tohoto webu se nachází na www.tutorialy.com

homeforumTutorialy.com
 
Reklama
Hezké URL aneb mod_rewrite
Hezké URL aneb mod_rewrite
Hezké URL aneb mod_rewrite
Návod na vylepšení URL adres webu pomocí mod_rewrite
Autor: Marek | Kategorie: Tvorba webu > SEO optimalizace | Zhlédnuto: 6397x |
Hodnocení: 2.7 | Komentáře (6) | Obtížnost: Uživatel | Vloženo: 20.1.2007

Již nelze déle ignorovat Vaše četné žádosti o rady ohledně mod_rewrite a přepisování URL :-). Stručně vysvětlím použití, ale teorii o tom, „k čemu to vlastně je“ nechám na redaktorovi matqo a jeho seriálu o optimalizaci pro vyhledávače (SEO).

Pro používání mod_rewrite potřebujete mít:

  • samotný mod_rewrite na serveru Apache nainstalovaný a povolený
  • povolený .htaccess
  • tento návod ;-)

Použtí mod_rewrite

Otevřete / vytvořte si soubor .htaccess a do něj vložte direktivu pro spuštění mod_rewrite:

RewriteEngine on

Jako první Vám doporučuji nastavit přesměrování na verzi domény s www na začátku. Tedy když někdo do adresního řádku prohlížeče zadá tutorialy.com, přesměruje ho server na www.tutorialy­.com. To je vhodné kvůli PageRanku, JyxoRanku a podobných, protože oba uvedené tvary adresy jsou z hlediska vyhledávače dvě rozdílné stránky. Přesměrování se provádí přidáním těchto direktiv do souboru .htaccess:

RewriteCond %{HTTP_HOST} ^tutorialy\.com
RewriteRule (.*) http://www.tutorialy.com/$1 [R=301,QSA,L]

Direktiva RewriteCond je porovnávacím příkazem, který porovnává obsah proměnné (v tomto případě HTTP_HOST, která obsahuje adresu serveru) s požadovanou hodnotou (tutorialy.com). Stříška znamená začátek řetězce. Pokud je podmínka splněna, spustí se direktiva RewriteRule, uvedená hned na následujícím řádku. Syntaxe použitých direktiv je taková:

RewriteCond testovaný-řetězec regulární-výraz
RewriteRule co-presmerovat kam-presmerovat [pravidla]

Při přesměrování na verzi domény s www na začátku jsme použili pravidla R=301, což je přesměrování se stavovým HTTP kódem 301. Dále pravidlo QSA, který předává proměnné posílané metodou GET, tedy řetězec za otazníkem v URL. Pravidlo L říká, že je toto RewriteRule posledním a dále se nic nepřepisuje. Další často používaná pravidla jsou například F, posílající stavový HTTP kód 403 (zakázáno) a NC, který říká že nezáleží na velikosti písmen.

Nyní se dostáváme k podstrkávání URL. To probíhá velice jednoduše pomocí Vám již z vyšších řádků známé direktivy RewriteRule. Podstrčení stránky se v případě tohoto webu zapisuje například takto:

RewriteRule ^tutorial/(.*)/(.*) /index.php?cislo=$1&nazev=$2
Jednoduše řečeno - $1 je řetězec ukládaný do první (.*) a $2 je řetězecukládaný do druhé (.*). Zbytek jste určitě pochopili a pokud ne, tak siznova projděte začátek tutoriálu, obzvláště se zaměřte na pasáž o syntaxiRewriteRule ;-).

Né vždy je ale nutné předávat nějaké řetězce a tak ještě přiložím takový úplně jednoduchý zápis RewriteRule, ale předpokládám že by jste na něj již dokázali přijít sami:

RewriteRule ^o-nas(.*) index.php?page=o-nas

Zde se žádný řetězec neukládá a při požadavku klienta na stránku www.tutorialy­.com/o-nas server podstrčí stránku www.tutorialy­.com/index.php?….

mod_rewrite se dá využít nejenom pro podstrkávání „falešných“ URL adres, ale také pro přesměrování například v případě, že jste původní soubor přejmenovali. V tomto případě vložíte do hranaté závorky na konec RewriteRule pravidlo R:

RewriteRule stara-stranka\.php nova-stranka.php [R]

Teď mám pocit, že jsem ještě něco zapomněl napsat… doufám že nic :-D kdyžtak pište do komentářů.


Hodnocení tutoriálu: 2.7 (hodnotilo 11 uživatelů)

Ohodnoťte tutoriál (jako ve škole):

Tutorialy.com © 2006 Marek Čapla & Filda | výměna odkazů | mapa webu | RSS zdroj | PageRank: 4 | ISSN 0322-9289

Online flash hry