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

 

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

Google       20. 9. 2006       37 395×

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 NEWTON Media prohledá 200  milionů mediálních zpráv během sekund díky Cisco UCS

NEWTON Media prohledá 200 milionů mediálních zpráv během sekund díky Cisco UCS

Česká společnost NEWTON Media provozuje největší archiv mediálních zpráv ve střední a východní Evropě. Mezi její zákazníky patří například ministerstva, evropské instituce nebo komerční firmy z nejrůznějších oborů. NEWTON Media rozesílá svým zákazníkům každý den monitoring médií podle nastavených klíčových slov a nabízí online službu, kde lze vyhledat mediální výstupy v plném znění od roku 1996.

Reklama
Reklama
Obrázek ke článku Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý