URL rewrite problémák
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:
A .htaccess tartalma:
A modr.css tartalma:
A kepek.php tartalma:
A magyar_tortenelem.php tartalma:
A vilag_tortenelem.php tartalma:
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?
■ 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
- 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>
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;
}
{
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>
<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>
<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>
<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?
semmit
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. ;]
Kis kiegészítés...
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