Názory ke článku Vytváříme srozumitelné URL adresy z názvu článku
Uz delsi dobu si planuju napsat podobny system na prevedeni nazvu clanku do URL adresy, moc pekny clanek....
Nerad bych vám kazil radost, ale tato optimalizace na SEO nemá vliv, viz. <a href="http://php.vrana.cz/vytvoreni-pratelskeho-url.php">[link]</a>.
Jinak je to určitě výborný způsob na zajištění vzhledově přívětivých URL :-).
Citace komentáře z Vámi uvedeného článku:
<i>Jakub Vrána: Hezká URL SEO pomáhají...</i>
URL adresy nemaji se SEO temer nic spolecneho. existuje spusta dulezitejsich prvku na webu, na ktere vyhledavace prihlizeji. URL adresy pomahaji spise uzivatelum, protoze Robotum, kteri prochazeji stranky je jedno jestli indexuji upravenou url adresu nebo klasickou.
Nicmene je pekne tento zpusob odkazovani vyuzit.
Jiste, zaindexovana bude tak ci tak. Ale pri vyhledavani ve vyhledavaci, myslite, ze na "stejne" (v teoreticke rovine) pozici ve vysledcich bude clanek id15 a clanek Jak-se-naucit-programovat (jehoz titulek bude v URL)?
A cestu k hladanemu suboru zistim ako ?
IF ($_get['url']=='cesta-k-suboru') include(index/stranka.php);
???
Ukázkový kód (vč. vysvětlení) pro práci s takovými adresami a daty naleznete zde http://programujte.com/view.php?cisloclanku=2006091901
Snad bych ještě doplnil, že v článku o tomto nehovořím jako o nejdůležitějším prvku SEO optimalizace, nýbrž pouze o "jedné z dílčích částí optimalizací".
Zalezi na konkretni implementaci, ale obecne by se dalo poradit takto:
Mely by stacit dva kroky. Prvni krok je pouziti souboru .htaccess, budou
stacit dva radky:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9\\-]*)$ /index\.php?url_clanku=$1 [L,NC]
(jak to funguje je uvedeno zde
http://programujte.com/view.php?cisloclanku=2006091901)
Rekneme, ze bude nasledujici adresa: www.domena.cz/nazev-souboru. Tak
"nazev-souboru" se nam ulozi do promenne $_GET['url_clanku']. V druhem kroku je treba predat tuto promennou scriptu (druhy radek).
<?php
$page="dennik";
$pg = $_GET['url_clanku'];
...
ja len ze
<?php
$address = strtr ($address, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž ", "aaccdeeeinoorstuuuyzaaccdeeeinoorstuuuyz-");
?>
a
<?php
$address = strtolower ($address);
?>
by mohlo byt v opacnom poradi, (najprv strtolower,potom strtr. Tak by sa ten strtr kapik skratil (o velke pismena). Len si niesom isty, ci php prevedie napr velke Ů na ů a pod. Popisany sposob je asi istejsi :-)
Tiez neviem, preco v
// nahradi pomlckou vsechny znanky, ktera nejsou pismena
$re = "/[^[:alpha:][:digit:]]/";
$replacement = "-";
$address = preg_replace ($re, $replacement, $address);
nepadlo na koniec $re jedno "+", takze by na konci nebolo potrebne znova volat
// odstrani z adresy pomlcky, pokud jsou dve a vice vedle sebe
$re = "/[-]+/";
$replacement = "-";
$address = preg_replace ($re, $replacement, $address);
Kazdopadne pekny clanok, velmi pomohol ;-)
Používal jsem tento skript na data, která mám v databázi v UTF-8 a dělalo to techtle mechtle :o).
Bylo třeba ještě přidat řádku.
$address = iconv("UTF-8", "ISO-8859-2", "$address");
To jen kdyby se nahodou nekdo potykal se stejnym problemem.
20. 3. 2007
Díky moc za super článek, jedom moc nechápu [:alpha:], ale to si snad najdu. Díky! :)
[i]Alpha[/i] určuje veškerá [i]písmena anglické abecedy[/i].
8. 6. 2007
No Dakujem, navodov na vytvorenie MOD-REWRITE je na insternete spusta, ale tak takyto pekny a pomocny navod na pekne url som nasiel zatial len u VAS !
Dikes ;)
23. 6. 2007
Ja mam podobny problem, mne tato funkcia prevedie napr. ščťžýáíé na y-ruy-y-z ak som tam pridal
$address = iconv("UTF-8", "ISO-8859-2", "$address");
tak to neslo vonechapem to dokument mam v utf-8, skusal som to aj z db kde su udaje v utf8_general_ci a tiez to blbne...
15. 11. 2007
Ahoj, předem bych chtěl poděkovat za hezký článek, určitě tuto "funkci" využiju, ale pro něco jiného.
Napadla mě jedna otázka v souvislosti se SEO, přidávání silných slov do adresy je dobré, ale jen v případě, že na nás bude někdo odkazovat a titulek stránky se nebude měnit. Pokud potřebujete dělat dobré seo, musíte být flexibilní a nebát se měnit např. titulky.
Když potřebuju prorazit s "prodejem brambor do salatu" vytvorim adresu typu index.php?id=1&idk=2-prodej-brambor-do-salatu vse je super az do doby, nez zjistim, ze tato fráze nefunguje tak dobre, ze by byla lepší "brambory typu C" prejmenuji tedy stranku a jsem v haji,
kdybych ji mel nazvanou index.php?id=1&idk=2 zadny problem by nenastal...
To ajajaj: ale přece když mám adresu typu index.php?id=1&idk=2 tak potom mohu dodat text jaký se mi hodí. Je jedno jestli tam napíši index.php?id=1&idk=2-bramory-typu-C nebo index.php?id=1&idk=2-hezky-clanecek nebo cokoliv jineho. Na ten text za pomlčkami se nebere ohled. Sám tuto metodu používám.
30. 5. 2009
Mel jsem trochu problemy s kodovanim a zadne z dostupnych reseni nepomahalo. Vse jsem vyresil takto:
private function normalizeString ($string) {
$table = array(
'Š'=>'S', 'š'=>'s', 'ß'=>'Ss','Đ'=>'Dj', 'đ'=>'dj', 'Ž'=>'Z', 'ž'=>'z', 'Č'=>'C', 'Ć'=>'C', 'Ç'=>'C',
'ć'=>'c', 'č'=>'c', 'ç'=>'c', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A',
'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'È'=>'E', 'É'=>'E', 'Ě'=>'E',
'Ê'=>'E', 'Ë'=>'E', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ě'=>'e', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I',
'Ï'=>'I', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O',
'Ö'=>'O', 'Ø'=>'O', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ð'=>'o', 'Ù'=>'U',
'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ů'=>'U', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ů'=>'u', 'Ý'=>'Y', 'Þ'=>'B',
'ñ'=>'n', 'Ý'=>'Y', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', 'Ŕ'=>'R', 'Ř'=>'R', 'ŕ'=>'r', 'ř'=>'r',
);
return Strtr($string, $table);
}
public function getNewsName ($title) {
$title = $this->normalizeString($title);
$title = StrToLower($title);
//...Znaky abecedy + cisla, vyjimaje specialnich znaku - ty jsou nahrazeny > "-"
$pattern = "/[^[:alpha:][:digit:]]/";
$replacement = "-";
$title = Preg_Replace ($pattern, $replacement, $title);
//...Odstranenni znaku "-" z konce a zacatku retezce
$title = Trim ($title, "-");
//...Pokud se nekde znak "-" opakuje vicekrat za sebou, je nahrazen jednim
$pattern = "/[-]+/";
$replacement = "-";
$title = Preg_Replace ($pattern, $replacement, $title);
return $title;
}
22. 11. 2009
je jedna věc co by mě zajímala, URL je z hlediska vyhledavace skoro zanedbatelna, pokud to chapu dobre, ale ne uplne a kazdy kousek se hodi, takze otazka zni, je ohledne SEO jedno jestli budeme mít adresu http://domena.com/?clanek=nazev-clanku nebo http://domena.com/clanek/nazev-clanku ??
2. 12. 2009
Reagoval na komentář od uživatele Anonymní uživatel :
Dik moc aspon sem tu tabulku nemusel psat ruco :)
6. 10. 2011
zdravím, prosím někoho o zaslání vašeho upraveného souboru index.php z tohoto článku na adresu rlprace@tiscali.cz
díky!