ugrás a tartalomhoz

.htaccess "/" karakter

fERI · 2008. Jún. 19. (Cs), 23.55
Sziasztok!

Készítek egy weboldalt, és .htaccess szeretnék felhasználni (Windows XP, Apache 2.2.4, mod_rewrite, stb.). Az lenne az állomány feladata, hogy minden olyan kérést, amely egy nem létező fájlra vagy mappára "könyvtárra" irányuló kérés, azt az index.php-ra irányítsa át a háttérben (és utánna feldolgozom az URL-t). Ez ezzel a kóddal megy is:
<IfModule mod_rewrite.c>  
	RewriteEngine on
	RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteRule ^(.*)$ index.php [QSA]
</IfModule> 
Viszont abban az esetben, amikor az adott URL után egy "/" található (azaz a www.domain.hu/oldal helyett www.domain.hu/oldal/ kerül mondjuk a felhasználó által begépelésre), akkor az oldal kifekszik, eldobja a CSS-t és nem jelenik meg megfelelően a tartalom.

JavaScript konzol az alábbi hibát dobja (amennyiben esetleg ez segít) a szintaktikai hibák miatt:
Hiba: A(z) http://.../style.css stíluslap nem töltődött be, mert a MIME-típusa "text/html" a "text/css" helyett.
Forrásfájl: http://.../
Sor: 0


Segítség lehet, hogy XHTML 1.0 Transitional-t használok.

Van valakinek esetleg ötlete, hogy mi lehet a baja? Már minden szinte megpróbáltam, de nem akarja.

Előre is köszönöm a segítséget.
 
1

Nem rewrite

janoszen · 2008. Jún. 20. (P), 07.37
Nem a rewrite lesz a gond itt, hanem az, hogy hogy hivatkozol a CSS-re. A helyes hivatkozás: /css/default.css
Valószínűleg Te így használod: css/default.css
2

De ReWrite

fERI · 2008. Jún. 20. (P), 09.37
Szia proclub!

Az kizárt, hogy nem a ReWrite-val van valami probléma. Amikor az URL végén nincs ott a "/" karakter, akkor minden rendesen működik, mikor ott van, akkor meg megfekszik. A másik, hogy soha nem használok abszolut hivatkozásokat (azaz a CSS hivatkozás most jelenleg így néz ki: ... images/style.css ...

A WebLabor oldalát is néztem, és ott úgy oldották meg, hogy amikor "/" karakter van az URL végén, akkor átirányítják ugyan arra az URL-re, csak nincs végén a "/" karakter. Sajnos a ReWrite-hez nem értek.

Szerintem megoldás lehet az, hogy legelőször meg kellene valahogy vizsgálni, hogy a nem kívánt karater szerepel-e az URLvégén, és ha igen, akkor azt a végéről valahogy lecsapni, és az oldalt arra tovább dobni. Utánna újból persze a ReWrite dolog lefut, de mivel az feltétel már nem teljesül, mehet tovább arra a részre, ami most is működik. Vagy a másik lehetőség az, hogy a jelenlegit kellene valahogy megheggeszteni.

Van valakinek eseltleg valamilyen ötlete?

Előre is köszönöm a segítséget.

Üdv.

fERI
3

Hivatkozás

janoszen · 2008. Jún. 20. (P), 10.06
Ok, ez is egy megoldás, de annyira nem jó, mert plusz egy HTTP requestet jelent, ergó lassabb lesz az oldal, stb. Főleg hogy egyre többen használnak mobilinternetet és ott nem ADSL sebességekkel jönnek létre a kapcsolatok, hanem sokkal lassabban.

Namost, a hivatkozás ugye úgy megy, hogy ha nincs az elején / jel, akkor a domainhez képest nézi, ha nincs előtte / jel, akkor az aktuális könyvtárhoz képest. Namost ha az oldalad végén van / jel, akkor így néz ki a CSS:

http://domainem.hu/aloldal/images/style.css

És ez nem az, amit szeretnél. Erre az a megoldás, hogy domainhez képest adsz meg hivatkozásokat (egy nagyobb oldalnál nem is nagyon tudod megoldani másképp a linkek szervezését, csak nagyon sok szopással). Ha esetleg valami GagyiSzoft Bt. tárhelyére kell alkönyvtárba tenni, akkor base href-fel meg tudod adni, mi legyen az, amihez képest nézi az utat.

Off: erre azt mondanám, hogy a mai hosting és domain árak mellett engedjük meg magunknak azt a luxust, hogy legyen legalább egy subdomain, még a tesztelésre is.
4

ISTEN vagy, ott a pont

fERI · 2008. Jún. 20. (P), 10.18
Szia proclub!

Nagyon szépen köszönöm a segítséget, ISTEN vagy (lehet, hogy jövök egy sörrel :)). Amit javasoltál, kiválóan megy.

Meg kell hagyni, én mindig a szívósabb megoldásokat választom, ezért nem használtam a <base ... /> tag-et. De most már rá fogok szokni.

További szép napot.

Üdvözlettel:

fERI
5

Off

janoszen · 2008. Jún. 20. (P), 13.22
Off: egy sörtől nekem keresztbeállnak a szemeim, nem bírom az alkoholt. :D Viszont az igényes kérdés/post önmaga megérte a választ. :) Sajnos ritkán látok mostanában ilyet.

On: Meg kell húzni a határt, hogy meddig vagy hajlandó elmenni a kódod hordozhatósága érdekében. Ez munkaadódhoz illetve az ügyfélhez fűződő viszonytól függ sokszor. Ha adnak eleget a véleményedre, hogy úgy jobban fogsz tudni dolgozni, akkor meg fogják teremteni a követelményeket.

Érdemes ezt az összefüggést adott esetben költség/megtakarítás szintjén forintosítani, mert az elég szemléletes. Tehát összehasonlítod az új domain/térhely/szerver árát a Te munkaidőd forintértékével.
6

Base

Őry Máté · 2008. Jún. 20. (P), 15.35
Vigyázni kell a base elemmel, mert bizonyos esetekben elrontja a #-hivatkozásokat.
7

konkrétum?

gex · 2008. Jún. 20. (P), 15.52
mik azok a bizonyos esetek? hadd tanuljunk valamit.
8

Csak horgony már nem lesz elég

Török Gábor · 2008. Jún. 20. (P), 16.23
Talán arra gondolt Máté, hogy a <base href="http://domain.hu/" /> hatására mondjuk a http://domain.hu/aloldal/ lapon a <a href="#tartalom"> hivatkozás a http://domain.hu/#tartalom címet fogja jelenteni.
9

id

attlad · 2008. Júl. 20. (V), 01.10
id href helyett.