ugrás a tartalomhoz

URL rewrite problémák

Anonymous · 2006. Szep. 26. (K), 15.56
Hali, most kezdtem ismerkedni az url rewritetal és akadt némi problémám.

Localhoston próbálgatom, a könytárszerkezet így néz ki:

C:\localhost\modr

- css   - modr.css
- kep   - alma.jpg
        - t.jpg

- .htaccess
- kepek.php
- magyar_tortenelem.php
- vilag_tortenelem.php


A .htaccess tartalma:

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteRule ^kepek$ kepek.php
RewriteRule ^kepek/$ kepek.php

RewriteRule ^tortenelem/magyar$ magyar_tortenelem.php
RewriteRule ^tortenelem/vilag$ vilag_tortenelem.php

</IfModule>



A modr.css tartalma:

a
{
background-image: url(../kep/t.jpg);
display: block;
width: 93px;
height: 134px;
color: white;
}



A kepek.php tartalma:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<link rel="stylesheet" type="text/css" href="css/modr.css">
</head>

<body>

<img src="kep/alma.jpg" alt="alma">
<a href="valami.php">valami</a>


</body>
</html>


A magyar_tortenelem.php tartalma:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<link rel="stylesheet" type="text/css" href="css/modr.css">
</head>

<body>

ez itt a magyar történelem oldala

<img src="kep/alma.jpg" alt="alma">
<a href="valami.php">valami</a>


</body>
</html>



A vilag_tortenelem.php tartalma:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<link rel="stylesheet" type="text/css" href="css/modr.css">
</head>

<body>

ez itt a vilagtörténelem oldala

<img src="kep/alma.jpg" alt="alma">
<a href="valami.php">valami</a>


</body>
</html>



Mint a htaccessből is látható (RewriteRule ^kepek$ kepek.php) a kepek.php-t a
"kepek"-kelszeretném elérni és az működik is.
Valamint úgy is el szeretném érni, ha a "kepek"-hez hozzácsapnak egy /-et, de így
már nem jó, mert elrontja a képek és a css hivatkozásokat. Az almás kép pl.
"http://localhost/modr/kepek/kep/kep/kep/alma.jpg" lesz a "http://localhost/modr/kep/alma.jpg"
helyett.

A magyar_tortenelem.php fájlt a "http://localhost/modr/tortenelem/magyar" linken
keresztül szeretném elérni, de itt szintén rossz a képek és a css hivatkozások.

Szóval, mit csinálok rosszul?
 
1

semmit

Anonymous · 2006. Szep. 26. (K), 16.24
pontosabban nem gondolsz bele abba, hogy a relatív útvonalaid módosulása nem hiba, ha egyre jobban belemélyedsz egy könyvtárba.
két megoldás létezik:
- használj abszolút hivatkozásokat
- használd a base tag-et

gex

u.i: legközelebb pedig a keresőt. ;]
2

Kis kiegészítés...

vbence · 2006. Szep. 26. (K), 16.58
a kolléga válaszához: amikor HTML-ből hivatkozol egy másik fájlra (kép, css, vagy link) ezt a böngésző fejti meg, ami nem tudhatja, hogy milyen PHP fut a háttérben, tehát ő az általa ismert URL-hez viszonyít mindent.

Ilyenkor /css/xy.css -ként hivatkozhatsz külső fájlokra, vagy (ha azt szeretnéd, hogy oldalad ne csak a webszerver gyökerében működjön) használhatsz BASE taget. A BASE-ben "teljesen abszolút" URL-eket kell megadnod, a végére peig kell a "/". Pl:
<base href="http://szerverem.hu/"/>
ha erre építesz, akkor majd egyszer símán átírhatod erre:
<base href="http://szerverem.hu/regioldalam/"/>
és minden link működni fog továbbra is.

B