.htaccess, JS/CSS/stb. figyelmen kívül hagyása
Szerver (@home :): Apache 2.2.3, Ubuntu 7.04
.htaccess a gyökérkönyvtárban, tartalma:Cél: barátságos webcímek, a
Probléma: a fenti a domain.hu/valtozik esetén jó is, de ha domain.hu/valtozik/ezis (tehát nem "első szint") a cím, akkor a CSS és a JS állományokat, melyek a ./skins/ könyvtárban vannak, a szerver a domain.hu/valtozik/ezis/skins/style.css-ként (.js, stb.) keresi. Képekkel nincs gond.
A kívánt működés az lenne, hogy a háttérben dolgozó rendszer megkapja $_GET['q']-ra a paramétereket, de minden egyéb állomány esetén az Apache érintetlenül hagyja az eléréseket.
Utánaolvastam a témának:
Nyilván valahol le van írva, de a téma irodalma annyira gazdag, hogy képtelenség áttekinteni.
Elnézést kérek, tudom, hogy sokszor volt a téma, de egyszerűen nem jövök rá, mi a megoldás.
■ .htaccess a gyökérkönyvtárban, tartalma:
<IfModule mod_rewrite.c>
RewriteEngine on
#RewriteOptions MaxRedirects=10
RewriteRule \.(ico|js|css|gif|jpe?g|png)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
domain.hu/valtozik/ezis
címet a rendszer domain.hu/index.php?q=valtozik/ezis
-ként kapja meg.Probléma: a fenti a domain.hu/valtozik esetén jó is, de ha domain.hu/valtozik/ezis (tehát nem "első szint") a cím, akkor a CSS és a JS állományokat, melyek a ./skins/ könyvtárban vannak, a szerver a domain.hu/valtozik/ezis/skins/style.css-ként (.js, stb.) keresi. Képekkel nincs gond.
A kívánt működés az lenne, hogy a háttérben dolgozó rendszer megkapja $_GET['q']-ra a paramétereket, de minden egyéb állomány esetén az Apache érintetlenül hagyja az eléréseket.
Utánaolvastam a témának:
- Apache mod_rewrite doksi,
- Weblabor kereső .htaccess kulcsszóval,
- Google a .htaccess, JS, CSS, redirect, mod_rewrite, és még egy pár másik kulcsszó igen változatos kombóival
Nyilván valahol le van írva, de a téma irodalma annyira gazdag, hogy képtelenség áttekinteni.
Elnézést kérek, tudom, hogy sokszor volt a téma, de egyszerűen nem jövök rá, mi a megoldás.
/ jel
Mindkettő megtörtént már
base tag
Demo
A demo elérhető a http://e-arc.hu/weblabor/mrt/ címen. A http://e-arc.hu/weblabor/mrt/proba jól példázza, mi a probléma: a /proba még jó, a Próba aloldala linkre kattintva azonban elszáll a formázás.
.htaccess a http://e-arc.hu/weblabor/mrt/ könyvtárban, tartalma:
RewriteBase http://e-arc.hu/weblabor/mrt
nincs kikommentelve, Error 500-at dob a szerver.Az éles környezet a nyitóbejegyzésben vázolthoz képest Debian alapon fut, de más különbség - tudomásom szerint - nincs.
Access.log alapján a szerver CSS, JS esetén is az átírt URL-eken keresi a file-okat, rewrite.log csak lokálból van, de nem igazodok ki rajt (lekérésenként is eléggé bőbeszédű már loglevel 3 esetén is, csak külön igényre varázsolnám fel).
Szerk.: .htaccess máshol nincs.
Könyvtárstruktúra:
sys/
innen húzkod be dolgokat az index
skins/
mrt/ (más név esetén is hiba van, mindegy a fenti mrt-vel való egyezés)
css.mrt.css
(más stíluslapok, képek, template-ek, stb.)
others/
JS-ek
labels/
nyelvi file-ok
index.php
.htaccess
Hálásan fogadnék minden segítséget, mert tényleg nem jövök rá, mi a gond.
base tag helye
Ennek a sornak
nincs sok haszna, ez
már megteszi helyette is, amit kell.
A RewriteBase-t akkor kellene használni, ha a szájt fizikai elérése más, mint ami az url-ből látszik, de tudtommal nem ez a helyzet, tehát fölösleges. (BTW a te esetedben a default értéke /weblabor/mrt (végeperjel nélkül), tehát ezzel vszleg ugyanígy működne.)
Megoldódott
Döbbenet. Látszik, hogy belekockultam már a témába, szégyellem ezt a banális hibát. Tiéd a pont, úgy tűnik, ez volt a megoldás. :)
Hirtelen persze érthetővé válik az is, hogy a képek miért működtek (gy.k. azok már a base után voltak...).
A mod_rewrite-ot nem ismerem eléggé biztosan ahhoz, hogy ne akartam volna explicit kizárni a RewriteRule-lal a CSS, JS, stb-t. RewriteBase hasonló eset, de tanultam mindkettőből.
Köszönöm a segítséget!