Autor Zpráva
ReVolt
Profil
Ahoj, mám problém s přepsáním adres do koukatelnější podoby, jak jsem vyčetl tak to pracuje pouze s obsahem url adresy a já jsem chtěl aby mi to z např. tohoto: domena.cz/clanek.php?id=500 udělalo toto domena.cz/clanek-500
to bych snad nějak zmastil, ale když se tam těch proměnných dostane víc např: domena.cz/clanky.php?kategorie=5&strana=2 -> domena.cz/clanky-5/2
tak to asi musím napsat nové pravidlo pro přepisování, ale jak to pozná kdy bude přepisovat adresu s 1 (nebo dokonce 0) proměnnou a kdy s více
to je ten systém natolik inteligentní nebo mu to musím nějak říct?

mod_rewrite mi hlava nebere sedím nad tím už dýl a pořád to ne a ne pobrat, asi jsem na tohle tupej
Díky zapomoc
Davex
Profil
ReVolt:
Hlavní kus práce se musí udělat v PHP skriptu, aby na webu vytvářel pěkné odkazy. Mod_rewrite už je jen nástroj, který zařídí přepis těch pěkných adres na PHP skript, který zařizuje všechno ostatní. Počet proměnných vůbec neřeš. Přepisuj všechny adresy nevedoucí k souborům na PHP skript a tam už si s adresou udělej co je potřeba. Viz Řešení některých častějších problémů (FAQ) » Univerzální obecné pravidlo.
ReVolt
Profil
Davex:
aha, takže když mám adresu domena.cz/clanek.php?id=5 tak si napíšu skript, který mi vytáhne třeba jméno článku, dejme tomu Nový článek, potom to upravím na novy-clanek a tohle nějak dám tomu mod_rewrite aby mi vyplivl adresu domena.cz/novy-clanek
pochopil jsem to správně?
Davex
Profil
ReVolt:
... potom to upravím na novy-clanek a tohle nějak dám tomu mod_rewrite aby mi vyplivl adresu domena.cz/novy-clanek
Upraví se na novy-clanek, na stránku vypíše PHP skriptem do odkazu <a href="novy-clanek">nový článek</a>, po kliknutí na odkaz a načtení stránky z adresy domena.cz/novy-clanek jen mod_rewrite zařídí, že se zavolá skript s parametrem index.php?url=novy-clanek. Hodnota parametru se v PHP skriptu přečte z pole $_GET['url'] a podle toho se také ve skriptu zobrazí správný obsah stránky.

Vlastně by neškodilo přečíst si o Mod_rewrite, kde Yuhů popsal to samé a podrobněji.
ReVolt
Profil
Davex:
jo takhle a já jsem myslel (blbě jsem to pochopi) že je to naopak
ReVolt
Profil
Ahoj, ještě jeden problém, přečetl jsem si článek o mod_rewrite
do htaccess jem si dal tohle RewriteRule (.*)/([1-9]*)-(.*) redirect.php?stranka=$1&id=$2

ale co mám napsat od toho redirect.php, když jsem, v htaccess měl clanek.php tak to bylo dobrý, ale když budu mít třeba clanek.php a kategorie.php, kde bude ještě stránkování, tak jsem myslel, že si mám vytvořit jiný soubor, kde nadefinuji redirecty, ale nenapadá mě jak, nevím jestli na to jdu dobře

tak ještě jinak, do htaccess jsem napsal tohle:
RewriteEngine on 
RewriteRule    kategorie/([1-9]*)-(.*)/([1-9]*)    kategorie.php?id=$1&page=$3
RewriteRule    clanek/([1-9]*)-(.*)    clanek.php?id=$1

to by jakž takž fungovalo, jen mi to ty adresy řetězí z sebe:
127.0.0.1/kategorie/1-Kategorie-ahoj/clanek/1-test-%C2%A9/kategorie/2-Dal%C5%A1%C3%AD-kategorie/

jak jsem pochopil z FAQ tady v této sekci tak kdybych vše řešil přes index.php tak by to asi nedělalo, jenže já nechci mít všechno v jednou souboru

EDIT: když zadám absolutní url tak je vše ok, nejde to i relativní?
Davex
Profil
ReVolt:
když zadám absolutní url tak je vše ok, nejde to i relativní?
Šlo by to, když se v adrese nebudou používat lomítka.
ReVolt
Profil
Davex:
tak jsem vyměnil lomítka za pomlčky a mám další problém, když mám url třeba kategorie-5-neco-neco tak je vše ok, ale když třeba kategorie-10-Nove tak mi to háže error 404

ještě dotaz, když má nějaký portál v takovýchhle adresách lomítka, tak to asi používají absolutní url že

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: