| Htaccess krajšanje urljev | ||
|---|---|---|
|
Gizmo
25. okt 2013 10:09:48
Pridružen od: 25. feb 2009 2647 objav 2589 396 55 |
#1
Rad bi v .htaccess uredil par urljev, ki so zdaj v obliki domena.com/mapa/blabla?3252465. Zanima me, kako bi stran funkcionirala v obliki domena.com/mapa/blabla, obenem pa bi se rad tudi kaj uporabnega naučil, ampak bolj kot gledam, manj mi je jasno. Ima morda kdo tu kak uporaben predlog oziroma delujoč primer, da lahko sprobam? | Pisanje besedil |
|
|
|
krejzi
25. okt 2013 13:37:44
Pridružen od: 14. mar 2013 558 objav 915 213 12 |
#2
Začneš tako, da v htaccess postaviš nekaj takega:
Prva vrstica pomeni, da se vklopi mod_rewrite, ki mora biti nameščen na apache. Prav tako mora v apache.conf biti določeno
ali
ki prepriča apache, da upošteva Rewrite v .htaccessu Druga in tretja vrstica (RewriteCond) sta zato, da se url rewrite izvede samo, če datoteka (-f) in direktorij (-d) NE obstajata. Zadnja vrstica je dejanski rewrite. Kar naredi je to, da karkoli vpišeš po tisti mapi, v kateri se .htaccess nahaja, bo request še vedno obdelal index.php. Za bolj kompleksne rewrite se moraš poglobit v regular expressione. Ampak načeloma zgornje 4 vrstice zadoščajo, če vse requeste obdela index.php, razen za tiste datoteke, ki obstajajo (npr pripadajoče slike, stylesheet, skripte...) Toliko za začetek, za več pa, veselo na delo in eksperimentirat... |
|
|
Gizmo
25. okt 2013 19:31:14
Pridružen od: 25. feb 2009 2647 objav 2589 396 55 |
#3
Hvala, to sem tudi sam že ugotovil. Problem pa je v tem, da sploh ne vem, kako bi se res lotil napisati rešitev, nikjer ni nobenega vsaj približno podobnega primera. Kar sem gledal je vse precej specifično, ali pa je po dvanajst rešitev za isti problem, pa nobena ne dela. | Pisanje besedil |
|
|
|
krejzi
25. okt 2013 21:12:04
Pridružen od: 14. mar 2013 558 objav 915 213 12 |
#4
Najbolj klasične rešitve so takšne, da je url rewrite:
V tem primeru imaš tralala/neki rewritano v index.php?cmd=tralala/neki Če imaš pripravljeno neko podatkovno bazo vsebin, kjer je eden izmed stolpcev recimo SEOfancyurl, lahko vrednost $_GET-a 'cmd' pošlješ v bazo in dobiš na ta način prave podatke ven in pokažeš vsebino, namesto da kličeš index.php?id=123. Deluje na isti način, le poizvedba sprašuje po drugem polju. |
|
|
Gizmo
26. okt 2013 22:55:37
Pridružen od: 25. feb 2009 2647 objav 2589 396 55 |
#5
S kar nekaj kolobarjenja sem prišel do delujoče rešitve. Pravzaprav zadeva pač izbriše cel query string, kar reši moj problem: RewriteEngine On Zdaj je seveda vse precej bolj jasno, edino ne vem, kaj dela ta ? na koncu RewriteRule? | Pisanje besedil |
|
|