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

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

 

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

Google       20. 9. 2006       49 709×

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.

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
Autor 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     LinkedIn    

Nové články

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

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