ugrás a tartalomhoz

mod_rewrite

mgergo90 · 2009. Nov. 19. (Cs), 12.50
Sziasztok,

Van egy .htaccess fájl:

DirectoryIndex valami.php
RewriteEngine on
RewriteBase /weboldal/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ valami.php?rewrite=$1 [QSA]

Egy hivatkozás így néz ki: <a href="foldal/aloldal">Link</a>
ez a böngészőben így jelenik meg: http://www.mydomain.hu/weboldal/foldal/aloldal

Ha ismét rákatintok a linkre akkor:
http://www.mydomain.hu/weboldal/fooldal/fooldal/aloldal

Újabb kattintásra:

http://www.mydomain.hu/weboldal/fooldal/fooldal/fooldal/aloldal

Ez miért van?

Köszönettel:
Gergő
 
1

Link

Poetro · 2009. Nov. 19. (Cs), 13.44
A rewrite rule-odnak ehhez semmi köze. Mivel a linked relatív, ezért az aktuális útvonalhoz képest relatív ami kezdetben a http://www.mydomain.hu/weboldal/foldal/aloldal
Ehhez képest a foldal/aloldal pedig [/code]http://www.mydomain.hu/weboldal/fooldal/fooldal/aloldalt eredményez, mivel a [code]http://www.mydomain.hu/weboldal/foldal/-hoz képest relatív útvonalat adtál meg. Ajánlom a <base> elem megismerését, vagy pedig a gyökérhez képest add meg az útvonaladat relatívan, például
<a href="/weboldal/foldal/aloldal">Link</a>
2

Ajánlom a <base> elem

mgergo90 · 2009. Nov. 19. (Cs), 13.52
Ajánlom a <base> elem megismerését


"RewriteBase /weboldal"
Ez pont ugyanazt csinálja, mint a <base href="http://www.mydomain.hu/weboldal/"> , nem?
3

Kliens / szerver

Poetro · 2009. Nov. 19. (Cs), 15.29
Az egyik a kliens oldalon van, a másik a szerver oldalon. Amíg a HTMLben nem szerepel ugyanez, addig a böngésző nem tud róla.