Autor Zpráva
Onecar
Profil
Zdravím,

již hodinu se zde lopotím s mod_rewrite a ne a ne to rozjet. Adresy bych rád na mém webu takovéto:

mujweb.cz/kategorie
mujweb.cz/kategorie/objekt/1

Přičemž data se budou předávat do URL:

index.php?page=$1
index.php?page=$1&polozka=$2&cislo=$3

Měl jsem již takřka hotový mod_rewrite napsaný, ale naprosto mě dostala nefunkčnost všech stylů, obrázků a vůbec formatování webu. Už si s tím nevím rady, mohl bych někoho zkušenějšího pořádat o radu? Navíc mi nefungovalo nic kromě "mujweb.cz/kategorie" ...
Taps
Profil
Onecar:
přidej si před obrázky a css styly lomítko
link href="/style.css"
Onecar
Profil
Paráda! Opravdu díky za pomoc, kód je funkční.

RewriteEngine On

# ?page=kategorie > /kategorie/
RewriteRule ^([A-Za-z0-9-\_]+)/?$ index.php?page=$1 [L]

# ?page=kategorie&strana=2 > /kategorie/2/ (5)
RewriteRule ^([A-Za-z0-9-\_]+)/([0-9]{1,3})?/?$ index.php?page=$1&strana=$2 [L]

# ?page=kategorie&priklad&cislo=2 > /kategorie/priklad/cislo
RewriteRule ^([A-Za-z0-9-\_]+)/priklad/([0-9]{1,3})?/?$ index.php?page=$1&priklad&cislo=$2 [L]

CATerPILAR
Profil
Děkuji za příspěvek. Potýkal jsem se se stejným problémem. Ale za boha mi to pořád nešlo i když jsem tam měl lomítka. Navíc se mi adresy neustále kupily za sebe. Začalo mi to fungovat až když jsem to otestoval na ostrém webu==:>špatně definovaný localhost.

Mám rewrite mod rozchozený na EasyPHP 5.3.1.0. Neví někdo co se musí povolit v configu, aby mi to šlapalo i s virtuální adresářovou struktůrou? Pokud zůstanu u jednoduchého pravidla
RewriteRule ^([0-9]+)-([^/]+)\.html$ index.php?&id=$1&text=$2 [L,QSA]

je vše v pořádku, ale jakmile použiji další podadresář
RewriteRule ^([^/]+)/([0-9]+)-([^/]+)\.html$ index.php?&adresar1=$1&id=$2&text=$3 [L,QSA]

ztratím styly a adresy se kupí za sebou.
Nerad bych to ladil na ostrém webu. Děkuji za odpovědi.
CATerPILAR
Profil
Hledal jsem a to mě dovedlo k nastavení apache na lokále.
Klasickej root je www/
V něm mám adresáře
www.neco.cz
www.zaseneco.cz
atd.

No a jak to udělám, aby se každý adresář choval jako root sám sobě? Myslím, že takto jsou nastaveny všechny hostingy.
Proto se musejí používat ty lomítka, href=/ které směřují do rootu webu. Na lokále je to problém páč tím pádem směřují do adresáře www a nikoli do www/www.neco.cz

Nějak to musí jít kdo to ví?
Davex
Profil
CATerPILAR:
ztratím styly a adresy se kupí za sebou
Na všechny URL (styly, obrázky, stránky apod.) musíš odkazovat s lomítkem na začátku. Viz JPW: Mod_rewrite - Bacha na interpretaci cest.

jak to udělám, aby se každý adresář choval jako root sám sobě?
To je jiný problém. Pro každý adresář se musí nakonfigurovat samostatný VirtualHost. Mělo by ti pomoci téma Apache Virtual hosts - ako na to.
CATerPILAR
Profil
Davex:
Děkuji. Jak říkám, lomítka jsem tam měl a nepomohlo mi to neboť se vše tím pádem odkazovalo do rootu adresáře www. S tím byl spojený druhý dotaz)).
Děkuji mnohokrát.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0