Autor Zpráva
mirio
Profil
Ahoj,

začal jsem studovat SEO problematiku a s hrůzou jsem zjistil, že mám url na svých stránkách tvořené nejhorším možným způsobem (tj. dynamicky a ještě s parametrem id např. http://hovorka.biz/clanek.php?id=11 ).

Mám tedy pár dotazů (a dost se obávám odpovědí):
1. Dá se to řešit přes modrewrite bez toho, že bych musel zasahovat do kódu mého RS (např. články vypisuji přes jeho id) a pokud ano, tak jak?
2. Pokud ne, existuje nějaká varianta, která by mi ke cool_url dopomohla (naivní otázka, ale stejně jsem ji musel položit :-( )?
3. Pokud to budu muset začít celé předělávat, jaká je nejlepší (čti: nejméně náročná) cesta ke cool_url?

Moc děkuju za odpovědi.

Mirio
Joker
Profil
mirio
hrůzou jsem zjistil, že mám url na svých stránkách tvořené nejhorším možným způsobem (tj. dynamicky a ještě s parametrem id
No a čemu to vadí? Potřebujete svůj weblog dostat na první místo v Googlu? :-)
Jako u všeho, zvažte čeho chcete dosáhnout a kolik námahy do toho budete muset investovat.

1. Dá se to řešit přes modrewrite bez toho, že bych musel zasahovat do kódu mého RS (např. články vypisuji přes jeho id) a pokud ano, tak jak?
"cool URIs" dosáhnete celkem snadno, ale pak záleží, jak máte udělané odkazy na stránkách. Tedy sice Vám může fungovat adresa (web)/xx-nadpis-clanku.html, ale když redakční systém bude všude odkazovat na (web)/clanek.php?id=xx, bude Vám to celkem na nic. Pak už záleží na tom, jak je udělaný redakční systém. Ale pokud s tím RS nepočítal, většinou se to asi bez zásahu neobejde

2. Pokud ne, existuje nějaká varianta, která by mi ke cool_url dopomohla?
S "cool URIs" není až takový problém, problém je změnit existující odkazy na ty cool URIs. Tady asi jiná varianta než to upravit neexistuje.

3. Pokud to budu muset začít celé předělávat, jaká je nejlepší (čti: nejméně náročná) cesta ke cool_url?
Viz výše, stačí upravit ty odkazy. V závislosti na konstrukci toho redakčního systému to může být velmi jednoduché, ale nemusí.
mirio
Profil
ad 0. Ne, to určitě ne, ale člověk chce jít s dobou a má povaha je navíc taková, že pokud to není podle mého, je to špatně. :-)

ad 1. Odkazování na články v mém RS jsem vyřešil taháním odkazů z DB, znamená to tedy, že by to nemusel být takový problém? A ještě jedna věc - modrewrite zařídí, že i když budu mít cool URI (díky za opravení :-) ) např. takto http://hovorka.biz/clanek/PDFCreator.php tak on (modrewrite) z něj pro sebe udělá http://hovorka.biz/clanek.php?id=11 (navenek to však zůstane "cool") a tím pádem z URI dostanu id, které potřebuju pro vypsání článku?

Moc těm cool serepetičkám nerozumím. Nemáte odkaz na nějaké polopatické pojednání o modrewrite a cool URIs?

ad 2. Jak jsem psal, mám adresy tahané z DB...

ad 3. Nedokážu nic napsat, dokaď se mi nedostane odpovědí na výše položené otázky... :-)

Díky.
Plaváček
Profil
Celý seriál http://interval.cz/clanky/mod-rewrite-pro-hezka-url-rewriteengine-a-re writerule/
Joker
Profil
ad 1. Odkazování na články v mém RS jsem vyřešil taháním odkazů z DB, znamená to tedy, že by to nemusel být takový problém?
No prostě v seznamu článků, v menu a tak máte odkazy typu:
<a href="clanek.php?id=11">
a je potřeba, aby to bylo "cool", tedy například:
<a href="/clanek/11-pdf-creator.html">

Zařídit, aby fungovala adresa "/clanek/11-pdf-creator.html" není zas takový problém, jde o to, by se ta adresa v RS taky používala. Jak to udělat, to už záleží na tom, jak je udělaný RS.

např. takto http://hovorka.biz/clanek/PDFCreator.php tak on (modrewrite) z něj pro sebe udělá http://hovorka.biz/clanek.php?id=11 (navenek to zůstane "cool") a tím pádem z URI dostanu id, které potřebuju pro vypsání článku?
Vpodstatě ano.
Akorát že mod_rewrite umí akorát "přeházet" tu adresu, takže jestli tam chcete to ID, mělo by být někde už v té původní adrese. Například jak jsem psal výše: http://hovorka.biz/clanek/11-pdf-creator.html

Všimněte si třeba odkazu na Novinky.cz (vybral jsem jeden z posledních článků co mám v RSS):
http://www.novinky.cz/kultura/hip-hoperi--nerikejte-slovo-nigga--zni-z -newyorske-radnice_108810_4pv1o.html

Všimněte si, že odkaz obsahuje nadpis článku a potom jakýsi kód, kde je právě obsaženo ID článku.
Přitom název souboru i adresář kultura jsou fiktivní, redakční systém zajímá jen ID článku. Takže třeba tento odkaz:
http://www.novinky.cz/blbosti/-_108810_4pv1o.html
funguje taky a dovede Vás na tentýž článek.

Takhle nějak funguje mod_rewrite.
mirio
Profil
Plaváček: Dík moc. I když už jsem to četl.

Joker: Z Vašeho popisu jsme pochopil mnohem více než z libovolných článků, které jsem k tématu četl.

Přejděme tedy od teorie k praxi:
1. V DB přepíši všechny necool adresy na cool adresy (to nebude problém).
2. Upravuji .htaccess:

Redirect na doménu bez www (funguje, mám již odzkoušeno)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.hovorka.biz
RewriteRule (.*) http://hovorka.biz/$1 [R=301,QSA,L]

Rewrite na cool_URIs (neověřeno, prosím o posouzení, zda bude fungovat)
RewriteCond %{REQUEST_URI} /(.*)/
RewriteRule /?(.*)?/$ /index.php?id=$1 [NC,QSA,L]

Doufám (neověřeno!!!) že by to přepsalo (samo pro sebe, na venek zůstane adresa stejná!) tohle: http://hovorka.biz/clanek/11-pdf-creator.php
na tohle: http://hovorka.biz/clanek.php?id=11. Je to tak?

Pak ještě pár otázek:
a) Tímhle asi vznikne problém v tom, že např. obrázky a css styly se nebudou zobrazovat, protože adresář "clanek" neexistuje?
b) Jak zařídit, aby po odmazání "11-pdf-creator.php" nenaskočila 404-ka (opět - adresář clanek neexistuje)?
c) A jak na odstarnění přípony *.php?

Díky.
Toto téma je uzamčeno. Odpověď nelze zaslat.