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

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vytvořte si vlastní webové stránky. Snadno, rychle a levně přes Saywebpage.com
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

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

Google       20. 9. 2006       45 997×

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 Využití .htaccess na malém webu

Využití .htaccess na malém webu

V dnešní době existuje spoustu cms, které mnohdy ale vůbec nepotřebujeme a stačila by nám pouze základní funkčnost k úpravě url, přesměrování. K tomuto účelu je ideální .htaccess soubor, který nám se všemi těmato úpravami umí pomoct.

Reklama
Reklama
Obrázek ke článku Češi tlačí obce do otevřené komunikace – Mobilní Rozhlas si loni pořídilo dalších 171 měst a obcí

Češi tlačí obce do otevřené komunikace – Mobilní Rozhlas si loni pořídilo dalších 171 měst a obcí

Obyvatelé Česka se mnohem více zapojují do veřejného dění. Umožňují jim to přímo samosprávy, které stále častěji využívají nástroje takzvané chytré komunikace a participace. Dokládají to data za rok 2019 ekosystému Mobilní Rozhlas, lídra v oblasti chytré obecní komunikace. Zapojilo se do něj 171 nových měst a obcí, zaregistrovalo celkem 100 tisíc občanů a místní samosprávy jeho prostřednictvím rozeslaly třikrát více adresných zpráv než v roce 2018

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