Praktická ukázka základního použití mod_rewrite pro SEO adresy
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Praktická ukázka základního použití mod_rewrite pro SEO adresyPraktická ukázka základního použití mod_rewrite pro SEO adresy

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

Praktická ukázka základního použití mod_rewrite pro SEO adresy

Google       20. 9. 2006       43 104×

Zajisté se setkáváte s adresami působícími srozumitelně. Na druhé straně jsou takové, ze kterých nevyčtete, co skrývají. Vysvětlíme si, jak se vytváří a pracuje se „srozumitelnými“ adresami za pomocí mod_rewrite.

Reklama
Reklama

Jedním z mnoha důvodů pro použití srozumitelných adres jsou vyhledávače (SEO). Často je také zmiňována výhoda pro uživatele, kteří v případě ručního zadání adresy nejsou nuceni zadávat „spleť“ znaků.

Jak to funguje

Abyste mohli vytvářet tyto sympatické adresy, je nutné mít aktivován modul mod_rewrite spolu s nějakou formou podpory souboru .htaccess. Uživatel zadá webovou adresu, po zpracování dorazí požadavek na server. Server uvidí soubor .htaccess, který zpracuje dle, v něm uvedených, pravidel. Právě ve zmíněném zpracování podstrčíme jinou adresu, aniž by uživatel něco poznal.

Tabulka s články

Chceme tento styl adres využít např. pro články, které budeme mít uložené v databázi. Musíme vymyslet způsob, jak propojit články se srozumitelnými adresami. Asi nejjednodušší je mít tabulku, která bude uchovávat názvy článků s texty, a url odkazy k  jednotlivým článkům. Před uložením článku do databáze vytvoříme z názvu článku srozumitelný odkaz, který bude identifikovat daný článek. Jediným požadavkem je mít jedinečné názvy článků, aby nenastala situace, kdy bude stejný odkaz pro dva různé články, avšak se stejným názvem. Toto je otázka ošetření před uložením a nebudeme se tím nyní zabývat.

Postup činností

Zadaná adresa se zpracuje na serveru. My si z ní vytáhneme adresu článku. Další zpracování ponecháme na podstrčeném scriptu, kterému navíc předáme jako parametr v adrese právě získanou adresu článku. Ve scriptu již bude klasická režie, která zajistí vyhledání článku a jeho následné vypsání.

Začínáme vytvářet

Nejprve si vytvořte databázi nazvanou test, následně v ní vytvořte tabulku pojmenovanou clanky, která bude mít 4 sloupce. Tabulka bude následujícího formátu, který je čitelný z SQL dotazu:


CREATE TABLE `clanky` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `nazev` TEXT NOT NULL ,
  `url` TEXT NOT NULL ,
  `text` TEXT NOT NULL ,
  PRIMARY KEY ( `id` ) 
) TYPE = innodb;

Nyní vložte do tabulky následující údaje:

id nazev url text
1 První článek prvni-clanek Toto je tělo prvního článku.
2 Druhý článek druhy-clanek Toto je tělo druhého článku.
3 Třetí článek treti-clanek Toto je tělo třetího článku.

Ze zadaných údajů je patrné, že tabulka bude obsahovat tři články. První sloupec je jedinečné id (v našem případě by to mohl být i sloupec url), druhý sloupec zastupuje název článku, ve třetím sloupci máme adresy, které zastupují jednotlivé články a poslední čtvrtý sloupec obsahuje samotný text článku.

Tímto máme databázi připravenou.

Nyní si vytvořte v rootu (kořenovém adresáři) serveru složku nazvanou „clanky“. V ní vytvořte dva prázdné soubory, jeden nazvěte .htaccess a druhý index.php.

Úprava .htaccess

Upravte soubor .htaccess následovně:

RewriteEngine on
RewriteRule   ^([a-zA-Z0-9\\-]*)$    /clanky/index\.php?url_clanku=$1 [L,NC]

Na prvním řádku se nachází RewriteEngine on, kterým zajistíme nastartování rewrite režimu. Na dalším řádku již máme pravidlo. Každé pravidlo začíná RewriteRule, za kterým následuje, v našem případě, regulární výraz ^([a-zA-Z0-9\\-]*)$, který vymezuje platné znaky pro adresu článku. Jsou povolena velká a malá písmena, číslice a pomlčka. Za regulárním výrazem následuje script, kam přesměrujeme další zpracování, platí-li regulární výraz. Script se jmenuje index.php a je uložen v adresáři /clanky.

V přesměrování navíc předáváme parametr nazvaný url_clanku (pro nás velice důležitý parametr), kterému přiřadíme obsah proměnné $1. Tato proměnná právě obsahuje část adresy, kterou je zadaný url odkaz názvu článku. Pokud tedy uživatel zadal http://www.nejakadomena.cz/clanky/prvni-clanek, tak proměnná $1 bude obsahovat řetězec „prvni-clanek“.

Dále jsme zde použili nepovinné modifikátory L a NC. L způsobí, že toto pravidlo je poslední, které bude provedeno, pokud mu požadavek vyhoví (regulární výraz). NC stanoví, že nebude brán zřetel na rozlišování velkých a malých písmen. Můžete tedy zadat http://www.nejakadomena.cz/clanky/prvni-clanek nebo http://www.nejakadomena.cz/CLANKY/PRVNI-CLANEK. Dále by mohl být přítomen modifikátor QSA, který by zajistil, že by se do nové adresy přenesly i parametry z původní adresy, které následovaly za otazníkem (http://localhost/clanky/prvni-clanek?neco=xyz).

Úprava index.php

Poslední částí je soubor index.php, který má následující obsah:


<php
  //  připojení k databázi
  //
  $dbLink = @mysql_connect("localhost", "[UŽIVATEL]", "[HESLO]") or die(mysql_error());
  mysql_select_db("test") or die(mysql_error());
  mysql_query("SET CHARACTER SET latin2");
  
  //  dotaz pro získání článku
  $sql = "SELECT * FROM `clanky` WHERE `url`='" . mysql_real_escape_string($_GET['url_clanku'])  . "'";
  $sql_query = mysql_query($sql) or die (mysql_error());
  
  //  zjišťujeme počet článků
  $num_rows = mysql_num_rows($sql_query);

  //  pokud existuje právě jeden článek
  if( $num_rows == 1 ){
    // ...tak jej vytáhneme
    $data = mysql_fetch_array($sql_query);
    //  ...a vypíšeme
    echo 'Název: ' . $data['nazev'] .
         'url: ' . $data['url'] .
         'text: ' . $data['telo'];
  //  pokud článek neexistuje
  }else{
    //  ...vypíšeme chybovou hlášku
    echo 'Článek neexistuje';
  }
  
  //  odpojení od databáze
  mysql_close($dbLink);
?>

Ukázkový script je zcela primitivní, vezmeme parametr z adresy a porovnáme ho s údaji v databázi ve sloupci url. V případě, že je adresa nalezena, tak vrácený záznam (řádek) je článek, o který má uživatel zájem. Stačí tedy článek vypsat.

Nezbývá než to vyzkoušet. Do adresního řádku prohlížeče napište adresu (na localhostu) http://localhost/clanky/blbost. Zobrazí se vám, zcela správně, že článek neexistuje. Nyní zadejte http://localhost/clanky/druhy-clanek a tentokrát již článek existuje a taky je vypsán.

Oba soubory si můžete stáhnout.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Zdeněk VečeřaAutor publikuje na Programujte.com a Živě.cz, zabývá se vývojem a použitelností internetových aplikací a stará se o spokojenost návštěvníků Laser Game v Brně.
Web     Twitter     Facebook     LinkedIn    

Nové články

Obrázek ke článku Datafesťak 2018 bude o datech, byznyse a ženách v IT

Datafesťak 2018 bude o datech, byznyse a ženách v IT

Na Univerzitě v Hradci Králové se 23. a 24. listopadu potkají všichni, které zajímá práce s daty. 

Reálné zkušenosti se zpracováním dat budou v prostorách univerzity prezentovat zástupci obchodních i výrobních firem. Potkat tak bude možné představitelé například z Kiwi.com, Crocodille, Dáme Jídlo nebo společnosti Adler. 

Reklama
Reklama
Obrázek ke článku 4 tipy, jak financovat rozvoj start-upu

4 tipy, jak financovat rozvoj start-upu

Možná jste právě jedním ze zakladatelů či manažerů nadějného start-upu 
a aktuálně řešíte, kde sehnat finanční prostředky pro další rozvoj. Zde pro vás máme čtyři tipy.

Obrázek ke článku Virtuální zrcadla změní způsob nakupování v e-shopech

Virtuální zrcadla změní způsob nakupování v e-shopech

Díky pluginu Virtooal.com získávají zákazníci e-shopů možnost si vyzkoušet produkty ve virtuálním světě. E-shopy, které si plugin nainstalují, výrazně snižují množství vráceného zboží, dělají nákupy zábavnějšími, a tím budují lepší vztahy se svými zákazníky. V současnosti lze Virtooal.com využít zejména pro kosmetiku, brýle a šperky, do budoucna půjde také o módu.

Obrázek ke článku Kariérní postup & vyšší plat: Titul MBA ve sféře IT

Kariérní postup & vyšší plat: Titul MBA ve sféře IT

Působíte jako specialista v oblasti IT a aspirujete na povýšení, příp. řídící pozici? Pak se jistě potýkáte nejen s vysokými nároky (potenciálních) zaměstnavatelů, ale i se silnou konkurencí ze strany ostatních uchazečů. Pokud chcete zvýšit své šance na kariérní posun a lepší plat, měli byste vedle technických dovedností ovládat i ty manažerské. Pomoci vám v tomto ohledu může studium MBA se specializací na management IT.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý