.htaccess "/" karakter
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: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:
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.
■ 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>
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
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.
Nem rewrite
Valószínűleg Te így használod: css/default.css
De ReWrite
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
Hivatkozás
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.
ISTEN vagy, ott a pont
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
Off
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.
Base
konkrétum?
Csak horgony már nem lesz elég
<base href="http://domain.hu/" />
hatására mondjuk ahttp://domain.hu/aloldal/
lapon a<a href="#tartalom">
hivatkozás ahttp://domain.hu/#tartalom
címet fogja jelenteni.id
id
href
helyett.