ugrás a tartalomhoz

mod_rewrite és a template kezelés... felmerülő hibák

The Hedgehog · 2006. Jan. 26. (Cs), 14.32
Egy saját CMS rendszeren dolgozom és mindenképpen használni szeretném a mod_rewrite-ot. A rendszer template-eket is kezel (Smarty-s alapokon) és ezeket templateket a http://www.oldalam.hu/templates/skinneve/ könyvtárból tölti be.

Íme a .htaccess fájlom:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /

  RewriteRule ^/hirek/([0-9]+).htm    $index.php?m=hirek&id=$1

</IfModule>
Vagyis azt akarom, hogy a http://www.oldalam.hu/hirek/112.htm beírásával a http://www.oldalam.hu/index.php?m=hirek&id=1 urlnek megfelelő oldalt hozza le az Apache. A tartalom le is jön, viszont a css-t illetve a képeket nem tölti be, mert a http://www.oldalam.hu/hirek/-et veszi root-nak nem pedig a http://www.oldalam.hu/-t.

Példával élve a http://www.oldalam.hu/templates/template_neve/style/site.css-t a http://www.oldalam.hu/hirek/templates/template_neve/style/site.css-ben keresi.

Meg lehet ezt úgy oldani, hogy a *.tpl-ekben ne kelljen abszolút hivatkozásokkal (="http://www.oldalam.hu/templates/template_neve/style/site.css") operálnom?!
 
1

<Nincs cím>

-zsolti- · 2006. Jan. 26. (Cs), 14.46
Persze, <head> után:

<base href="http://www.oldalad.hu/" />

Üdvözlettel: Liebig Zsolt
SWEN INTERNET
3

működik

The Hedgehog · 2006. Jan. 26. (Cs), 15.06
Isten vagy! Örök hálám ;)
2

per

Jano · 2006. Jan. 26. (Cs), 14.47
Felig abszolut jo? Tehat domain nevet nem irod, de egy perrel kezded a css utvonal megadasat. "templates..." helyett "/templates..."
4

<Nincs cím>

The Hedgehog · 2006. Jan. 26. (Cs), 15.27
Nem-nem ez sem működött. Már végigmentem több féle megoldáson. Ügyeskedtem php-vel, azt hittem, hogy a htaccess-em a rossz, de úgy látszik a Zsolti egyszerű megoldása vhogy elkerülte a figyelmemet :)
5

Pedig megy

attlad · 2006. Jan. 26. (Cs), 15.40
Amit Jano írt az működik, én is azt használom.
6

elhiszem...

The Hedgehog · 2006. Jan. 26. (Cs), 15.48
Elhiszem mert másnak is így ment akitől eddíg kérdeztem, de nálam vmiért ez nem működött. Furcsa...
7

<Nincs cím>

-zsolti- · 2006. Jan. 26. (Cs), 16.55
A kód hordozhatósága végett én nem javaslom a /-jelezést. Pl. ha be kell tenned egy alkönyvtár alá a rendszered, akkor mindenhol írhatod át.

Üdvözlettel: Liebig Zsolt
SWEN INTERNET
8

base-t nem?

Jano · 2006. Jan. 26. (Cs), 16.58
Miert, base-nel nem? A minehol pedig ha templateje van, egy fajl modositast jelent.
9

<Nincs cím>

-zsolti- · 2006. Jan. 26. (Cs), 17.09
Base-nél csak egy sort írsz át (azt), és az hatással lesz az egész site-ra: rel, href, src, stb. mindenre amiben útvonal szerepel. (De lehet, hogy félreértettelek.)

Üdvözlettel: Liebig Zsolt
SWEN INTERNET
11

Igy igazad van

Jano · 2006. Jan. 27. (P), 14.23
Valoban, a tobbi becsatolt cucc nem jutott eszembe.
12

Ja

attlad · 2006. Jan. 27. (P), 17.24
Még nem kellett alkönyvtárba tennem, mondjuk a "CMS-em" elég könnyen le tudná kezelni ezt, egy plusz szabályt beállítva, ami mindig átírja ezeket a webcímeket. Max. a CSS-ben kéne átírni, mert az egyelőre statikus. De igaz, hogy jobb megoldás lehet a BASE href megoldás, szóval valószínű majd áttérek rá, kösz a tippet.
10

általános

The Hedgehog · 2006. Jan. 27. (P), 14.03
Ahogy körbenéztem 1-2 hasonló mod_rewrite-ot használó rendszert (Drupal, WordPress), mindegyikük a BASE megoldást látszik használni.

Egyébként így tényleg egyszerűbb. Én adatbázisban tárolom a BASE url-t úgyhogy esetleges alkönyvtárazás után csak azt az egy mezőt kell módosítani, ahhoz hogy minden hivatkozás működjön.