Autor Zpráva
Michalek
Profil
Zdravim.
Snazim se uz mesic, ale proste jsem na tohle antitalent. Potrebuju poradit:

Mam odkaz clanek.php?cisloclanku=123 a chtel bych to za pomoci rewrite modu presmerovat na 123-neco-neco-neco.html.

Mohl by mi nekdo napsat funkcni priklad, ja to udelat? Jak rikam, cetl jsem clanek na rootu, na sovevsiti, dokumentaci apache ale proste to neumim. Prosim prosim.
Leo
Profil
Jaky je vztah toho neco-neco-neco a clanek.php?cisloclanku? Leo
Michalek
Profil
Predne: diky za cas.

clanek.php?cisloclanku=123 bude (melo by byt) 123-neco-neco-neco.html

Jde pouze o to cislo.

PS: Puvodne jsem to chtel ze by neco-neco-neco byly klicova slova z databaze, ale to asi nepujde, co? Nejak jsem se do toho zamotal.
halogan
Profil
To opravdu nepujde takto primo.
Martin Kuželka
Profil
Tak stačí mít dva parametry, jeden to číslo a druhý neco-neco-neco nebo jeden, ve kterém bude to cislo-neco-neco.
Leo
Profil
No ja jsme mod rewrite v praxi nepouzil, ale vim, ze pracuje s regularnimi vyrazy, kde se ze zadane adresy musi jednoznacne zrekonstruovat konecna - zadny sahani do databaze nepripada podle me v uvahu. Jedine, ze by to neco-neco-neco bylo pro vsechny stranky stejny. Pokud se meni podle cisla tak ti asi nezbude nez pouzit chybovou stranku 404.php, Leo
Michalek
Profil
Dobre; dejme tomu ze budeme mit

clanek.php?cisloclanku=123&klicovaslova=prvni-druhe-treti (tohle bude generovane z databaze)

a budu chtit

123-prvni-druhe-treti.html

Dekuju, Martine, za napad.
Michalek
Profil
Ale to je blbost. Ne?

Muze me nekdo vysvetlit, jak to funguje v blozich? Ja to nejak nepobiram.
Martin Kuželka
Profil
Michalku, co nepobíráš?
Michalek
Profil
Asi tohle:
u weblogu je bezne, ze maji odkaz treba www.mujweb.cz/123-moje-povidani-o-billovo-blbosti
(nebo hodim treba priklad http://hulan.info/blog/item/instalace-apache-mysql-a-php-na-windows/ca tegory/apache-php)

Moje soucasne vedomosti proste nepobiraji jak je to generovane? Proste nevim, nemuzu na to prijit; jsem z toho zoufalej :'-(
centi
Profil
RewriteEngine on
RewriteRule ^clanek.php?cisloclanku=(.*)&klicovaslova=(.*)$ $1-$2.html [L,QSA]

Neviem ci to pojde, to som len upravil svoj .htaccess. Inak je to pre mna tiez spanielska dedina :)
Martin Kuželka
Profil
Afaik je to normálně s těma dvěma parametry, jeden pro ID článku a druhý třeba pro jméno.
Michalek
Profil
A jak napr. Hulan odkazuje primo na tu adresu? ma odkazy primo na instalace-apache-mysql... a zadny clanek.php?id=instalace...
:-(

Jeste jednou diky za Vas cas
Martin Kuželka
Profil
Protože má zajištěno, že jsou ty odkazy redakčním systémem vygenerovány do stejného tvaru jako jsou přepsány ty url pomocí mod_rewritu.
centi
Profil
Ano, v HTML su tie PEKNE odkazy, tieto sa potom na serveri "prelozia" pomocou .htaccess na skutocne URL.. Aspon ja to tak chapem.
Michalek
Profil
To Martin:

Uz to pomalu zacinam chapat, jen skoda, ze mi ten priklad nefunguje - pochopil bych to asi rychleji.
Kazdopadne diky za vysvetleni, budu se snazit to rozchodit :-) Urcite dam vedet, jestli /a jak/ se mi to povedlo.
maxAV
Profil
mozna ti pomuze tohle (A List Apart)
Petra
Profil
No jestli to pořád ještě nefunguje, tak si zkusím tipnout řešení :-)

RewriteRule ^([0-9]*)-neco-neco-neco\.html$ /clanek.php?cisloclanku=$1

Jen teda bych podotkla, že přidávat tam uměle to "neco-neco-neco" mi přijde docela hloupý. To je zbytečné proglužování URL, jestli teda ze zadání dobře chápu, že to "neco" bude u všech URL stejné "neco" a měnit se má jen číslo.

Pokud to "neco-neco-neco" má být jakože ten název článku, což ze zadání moc nevyplývá, pak se to musí nacházet i v té nerewritované URL -> např. clanek.php?cisloclanku=123-neco-neco-neco
A pak by se to řešilo zhruba:

RewriteRule ^(.*)\.html$ /clanek.php?cisloclanku=$1
Toto téma je uzamčeno. Odpověď nelze zaslat.