Autor Zpráva
nerko
Profil
caute chcem sa spytat ako urobim aby mi pomocou mod-rewrite vznikla takato URL:
http://domena.tld/sk/
alebo
http://domena.tld/pl/
Momentalne mam adresy:
http://domena.tld/subor.php?lang=sk
a
http://domena.tld/subor.php?lang=pl
Dakujem vam za pomoc.
Majkl578
Profil
RewriteRule ^([a-z]+)\/$ subor.php?lang=$1
nerko
Profil
nejak mi to nefunguje. a este sa spytam, to treba zvlast potom vypisovat ze : subor.php subor1.php , subor2.php ... ?
valecekm
Profil
to nerko

Abych ti pravdu rek, tak ja jsem taky htaccess nerozumnel.. ovsem vcera vecer sem potreboval udelat uplne stejnou vec jako ty. Tak sem zacal googlit :-) a divil by ses co jsem vsechno nasel. a Z techto clanku a skouseni po pul hodine sem tomu prisel na chut :-).

Musis si nejdriv uvedomit, že presmerovavas prakticky no dam radsi priklad..:
Chces to vyskouset nejdriv i u sebe na localhostu a stim vetsinou nekdy bejvaj v zacatcich problemy. Dejme tomu ze si udelas slozku pokus a do ni soubor index.php . A budes odkazem predavat z indexu.php promnenou vysledek $vysledek=$_GET['vysledek'];* a abys zjistil, jestli se promnena opravdu prenesla, tak si ji proste vypises . Ted jde oto ze ty vlastne odkazem nepredavas celou promnenou v klasickym tvaru jak ji zname <a href=index.php?vysledek=zdravim">odkaz</a> ale jen pouze hodnotu promnenne $vysledek...a tudiz odkaz bude vypadat takto <a href="zdravim/">odkaz</a>.

a ted uz se jde na htaccess a mod rewrite:
Nejdriv musis zneskodnit nauzev souboru index.php.. Proste kdyz ho zadas, tak by se mel zase smaznout.
jeste jedna poznamka. komentare v htaccess se delj za znakem # .

soubor .htaccess:

RewriteEngine On
# pro localhost, kdyby jsi to chtel na serveru tak trebas takto: RewriteCond %{HTTP_HOST} ^mujweb.cz
RewriteCond %{HTTP_HOST} ^.*$

# misto index.php podstrcit nic
RewriteRule ^index.php$ http://localhost/pokus/$1 [R=301,QSA,L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# (.*) - jakykoli znak(a zavorka znamena ze se na tuto promnenou budeme pozdeji odkazovat) trebas prave zdravim , a na promnenou se odkazeme timto $1. tkaze presmerovavame na vyse uvedeny odkaz <a href="zdravim/"> ale prakticky odkazujeme na soubor index.php?vysledek=zdravim . , takze uzivatel vubec nema tuseni na jaky soubor ve skutecnosti odkazujeme.

RewriteRule ^(.*)/$ /pokus/?vysledek=$1 [L]

-----------------------------------------------------------
Proste to chce ze zacatku nejdrive vyskouset na necem jednoduchem a az pak pozdeji se vrhat do neceho slozitejsiho. Doufam ze jsem nekde neudelal chybku a snad tohle fungovat bude aspon pro pochopeni. Skusenej by to vysvetlil asi lepe a jinak, tak mne ostatni skusenejsi prosim omluvte.

to Majkl578
Verim ze v tvem prispevku chyba neni, ale pokud se nerko pokousi poprve o neco takoveho(coz nevim jen odhaduji ze ano), tak je lepsi to nejdrive vlastne vysvetlil, ze se musi odkazovat troku jinak na soubor, ktery zpracovava predane promnene, nez jak to zname klasicky. Nemyslim to nijak spatne a proti tobe, to bych si ani nedovolil, ale jen to chce proste ze zacatku vysvetlit oco vlastne jde, pokud to nekdou skousi poprve, a ten nekdo by mel take napsat, jestli to OPRAVDU skousi poprve :-)


Odkaz1- Interval
Odkaz2 -root
Odkaz3 - diskuse jakpsatweb
Majkl578
Profil
valecekm
nerekl, ze je zacatecnik, jen ze chce neco konkretniho udelat. tak jsem mu dal smer jak na to. to co jsem napsal mu samotne stacit nebude, musi si to upravit, ale to uz je vec pro nej, nevim jak ma resene stranky.

souhlasim, ze nejlepe se clovek uci zkousenim a chybami
nerko
Profil
Mas pravdu skusam to po prvy krat. je to ale dost zlozite. musim este vela cvicit, a dakujem za dotazy. malo by byt viacej ludi takych co dokazu pomoct. diky
Majkl578
Profil
nerko
neni to zas tolik slozite, pravidla to ma vpodstate stejne jako regulerni vyrazy :) a veci jako rewritecond se daji pochopit behem jednoho dne :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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