Mod_ReWrite

Imam vprašanje glede mod rewrite ...

prej nisem delal z mod rewrite, sedaj pa sem naredil page, pa dodal mod rewrite, zadeva dela ... poskusno :)

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
RewriteRule ^([a-z0-9]+)/? view.php?a=$1 [L]

ker stvari še nimam na domeni ampak na http://IP/WEBS/domain.com/ ... zato so vse poti nekako tako:

src="PIC/avto1.jpg", tudi v linkih ...

problem nastane oz. je že ... ko imam mod rewrite pa grem recimo na tak link

http://IP/WEBS/domain.com/view.php/test_image.jpg

sicer spremenljivko test_image.jpg dobim v php vendar je stran brez CSS ker je tudi tam pot podana NEKAJ/css.css in ne http://IP/WEBS/domain.com/NEKAJ/css.css ...

no sedaj pa me zanima če se da to kako drugače rešiti ali morem iti pa sprenit vse poti, slike, css, linki ... ? Vse to namreč kaže narobe, namesto od http://IP/WEBS/domain.com/ kaže od http://IP/WEBS/domain.com/view.php/ naprej ..... :S :(

69 odgovorov

V bistvu, meni se ne da je*at s tem RegEx pa vse to ... pa imam tako

RewriteRule ^(.*)/$ index.php?url=$1 [L]

pa s PHP tako:
$urlarray = explode("/", htmlspecialchars($GET["url"], ENT_QUOTES));

Jah, mislim, da ne razumes povsem, kaj RewriteRule dela :)

Zadeva, ki sem ti jo napisal, vzame URI v obliki /verses/ljubezenski/ in ga prevede v /?page=verses&category=ljubezenski

To pomeni, da se URIja /verses/ljubezenski/ in /?page=verses&category=ljubezenski obnasata povsem enako, to je pa vse, kar zadeva naredi. Nikakor ti ne spremeni linkov v HTMLju in nikakor ne redirecta iz /?page=verses&category=ljubezenski na /verses/ljubezenski/, kar ti ocitno pricakujes :) To obnasanje bi sicer lahko tudi dosegel, ampak z nekaj vec motoviljenja...

Ja, sej dosti motovilim :D, pa vem da se tako na dela, pa je*eš :D, tisto mi pač ni všeč, pa to kar imam jaz je univerzalno, drugače pa moreš za vsak page pisat, pa še jazdelam page z nule, pri njem bi bil problem, ker bi mogo vse spreminjat.

HeXeR, prav nic nisem rekel tebi, odgovor je bil namenjen lavtarju...

Je pa res, da tudi ti motovilis, ja :)

Aja :D ... ups :p

Ajaaaaaa, saj res. Najlepša ti hvala za tole!
Je pa res da mi še zdaj ne dela. Sedaj imam tisto kodo ki si jo ti predlagal:

Options +Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^/([^/]+)/([^/]+)/$ /?page=$1&category=$2 [L]

Pa vtipkam
http://www.verzi-verzi.info/verses/ljubezenski/
Pa ne dela...

Aha, zadevo imas v .htaccess :) Samo skini uni prvi slash... takole:

RewriteRule ^([^/]+)/([^/]+)/$ /?page=$1&category=$2 [L]

Mu že dela :D, tole še dodaj v head

[HTML]<base href="www.verzi-verzi.info" />[/HTML]

oz. če bo Vini povedal kak boljši način ?

In to je za?
Zdaj pa css styl-ov noče upoštevat :S

lavtar, zato, ker uporabljas relativne poti.. uporabljaj absolutne, pa bo vse v redu...