[PHP] Jak prakticky vyřešit mod_rewrite ?

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod lví srdce 3. 1. 2007 16:20

Už jsem ze všech parametrů, závorek, lomítek a otazníků celý paf
Pomůže mi někdo vyřešit praktický příklad ... prosím.

Mám adresu:
http://www.cokoliv.cz/?p=productsMore&iProduct=5

Co mám napsat do .htaccess abych dostal
http://www.cokoliv.cz/neco-pekneho

Děkuji za radu.


// mbing : Téma přesunuto ● z Programování do Tvorba webových stránek a aplikací.
lví srdce
Junior
Uživatelský avatar

Odeslat příspěvekod Z@chi 3. 1. 2007 19:16

tohle se tady resilo uz mnohokrat a na internetu je i hodne tutorialu.
Vytovoris si soubor, do ktereho budes smerovat sve odkazy. tedy napriklad index.
A pomoci regularnich vyrazu v .htaccess si potom vytvoris podminku.

Jednoduse to muzes udelat treba takto:
Kód: Vybrat vše
RewriteEngine on
RewriteRule     ^(.*)$   /index.php?q=$1 [L,QSA]

- to je velice jednoduchy priklad.
Z@chi
Junior
Uživatelský avatar

Odeslat příspěvekod lví srdce 3. 1. 2007 22:39

Bylo to tu mnohokrát to vím, ale ze všech článků co jsem prošel mi žádný nepodal ucelený obraz. Chápu že v .htaccess musím zapnout mod_rewrite, pak nějakou hatmatilkou :) zadat co se má dít čož sám nevytvořím a potom ten nějaký soubor, do kterého směřuji odkazy, to slyším dnes prvně ...
lví srdce
Junior
Uživatelský avatar

Odeslat příspěvekod cache 3. 1. 2007 22:44

Ak to mas na freehoste, tak predpokladaj, ze mod_rewrite, ci dokonca .htaccess ani nefunguje.

Jednoduchsie (hlavne pre neznalca) je pouzivat toto:

http://www.cokoliv.cz/index.php/neco-pekneho

Vzdy sa zavola index.php v REQUEST_URI budes mat potom "/index.php/neco-pekneho" a z toho si vies velmi jednoducho ziskas to "neco-pekneho".

Alebo v PATH_INFO mas "/neco-pekneho" (tusim).

Samozrejme namiesto index.php mozes mat akekolvek php, nemusi to byt nutne index.php.
Můj bože, to je budoucnost! Mí rodiče, přátelé, má dívka.. Už je nikdy neuvidím.. JUPÍÍÍÍÍÍ! (Fry s1e1)
cache
Pokročilý
Uživatelský avatar

Odeslat příspěvekod Zorg 3. 1. 2007 22:51

Máš to trochu popletené, mod_rewrite směřuje adresy http://www.cokoliv.cz/neco-pekneho na http://www.cokoliv.cz/?p=productsMore&iProduct=5 ne obráceně. Ty mu potom jenom píšeš pravidla co kam má směrovat a jak. Skvělá dokumentace s hromadou příkladů je tady: http://httpd.apache.org/docs/2.0/misc/rewriteguide.html To cos napsal ty bohužel není praktický příklad.
Zorg
Junior

Odeslat příspěvekod Gigi 3. 1. 2007 23:28

Asi nejlepší metodou pro tebu bude něco jako:
Kód: Vybrat vše
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


V souboru index.php pak podle $REQUESTED_URI zobraz prislusny obsah stranky.
Gigi
Junior

Odeslat příspěvekod lví srdce 4. 1. 2007 08:36

Co mi píšete je všechno moc pěkné, každý mi dá kousek do skládačky ... ale pořád mi tam neco chybí ... nehnu se z místa. Server mi .htaccess umožňuje, jinak bych se ani neptal. Ale co tam do něj přesně napsat :)
lví srdce
Junior
Uživatelský avatar

Odeslat příspěvekod Zorg 4. 1. 2007 16:30

Nenapsal jsi co chceš, nevím co ti napsat. A cos napsal je blbost, mod_rewrite ti z /neco.php?hromada_divnychparametru=blabla nikdy neudělá /neco-pekneho, jak píšeš odkazy je jen a jen na tobě.
Zorg
Junior

Odeslat příspěvekod lví srdce 4. 1. 2007 17:11

Teď už to vím, že co jsem napsal je blbost... najde se prosím nějaký mooc vzdělaný pán v PHP a vyřeší tento pro mě zapeklitý problém ? Kuju
lví srdce
Junior
Uživatelský avatar

Odeslat příspěvekod 2ge 4. 1. 2007 17:28

vsetko to tu uz mas napisane, ak ti to nepomohlo hladaj viacej na nete. V php si daj vypisat print_r($_REQUEST) - z@chiho riesenie v druhej odpovedi pouzivam aj ja (zjednodusene) a vsetko slape ako ma. Co sa tyka PHP, daj si toto vypisovat a linky zobrazuj ako http://nieco.com/pekne/url a uvidis sam co to bude robit a podla toho koduj dalej.
SubDownloader - stahuj a nahravaj titulky k filmom pomocou opensource programu z OpenSubtitles.org
2ge
Junior
Uživatelský avatar

Odeslat příspěvekod kecso 4. 1. 2007 17:43

vyskúšaj toto


RewriteEngine on
RewriteRule ^neco-pekneho/ /index.php?p=productsMore&iProduct=5
kecso
Kolemjdoucí

Odeslat příspěvekod lví srdce 4. 1. 2007 18:05

Abych uvedl vše na pravou míru ... v PHP jsem lama a jediná věc co musím udělat v php je pouze právě hezká adresa.

Všechno zkouším na straně serveru. Výše uvedené příklady prostě zkopíruju do .htaccess a pak se těším, že je hotovo a nic. Myslím si že mi uniká ta souvislost, že je třeba zasáhnout do index.php, což je pro mě dost nepohodlné.
lví srdce
Junior
Uživatelský avatar

Odeslat příspěvekod babca 4. 1. 2007 19:04

Zorg píše: To cos napsal ty bohužel není praktický příklad.k/quote]

No ale pokud nemá rewrite povolenej, tak jediná možnost...

To Lví srdce: jede ti vůbec htaccess?
babčův HTPC pro rok 2011: AMD Zacate, spotřeba 16W@46°C při idle, just Google it
babca
Junior
Uživatelský avatar

Odeslat příspěvekod lví srdce 4. 1. 2007 19:28

Jasně že jede ... hosting mam u Active 24
lví srdce
Junior
Uživatelský avatar

Odeslat příspěvekod Zorg 4. 1. 2007 20:14

babca píše:
Zorg píše: To cos napsal ty bohužel není praktický příklad.k/quote]
No ale pokud nemá rewrite povolenej, tak jediná možnost...
./quote]

Myslel jsem to jinak, že to není otázka, na kterou se dá odpovědět. Něco jako by ses zeptal "jaký je u nás počasí" a neřekl kde jsi.

Výše uvedené příklady ani jeden nefungují, protože už z principu nemůže existovat žádný obecný návod, který jenom zkopíruješ a jedeš. Navíc ti podle mě zatím pořád nedochází, že kromě zprovoznění mod_rewrite budeš muset projít celý kód webu a upravit generování odkazů na ty hezký (samozřejmě pokud jsi nepoužil už hotový systém, který by s tím počítal, třeba Drupal). Tedy vycházím z toho, že se snažíš o hezká URL pro celý web, ne jenom to jedno :-)
Zorg
Junior

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků