webForumDet fria alternativet

mod_rewrite bryter länkar till bilder och css

Webbservrar

2 svar · 1 217 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Håller på och fixar lite med mod_rewrite och har stött på problem.
Allt fungerar fint så länge man är en nivå ner, t.ex localhost/page men när man kommer ännu en nivå ner (localhost/page/var) så bryts länkarna till bilder och css då sökvägen till root blir fel.

Exempel ur min mod_rewrite:

RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)$ /index.php?page=$1&var=$2

Hur fixar man detta?

Medlem sedan juni 20006 031 inlägg
#2

Löste det tills vidare med att sätta <base href="http://localhost/" /> men är det rätt sätt att lösa det på?

Medlem sedan feb. 20034 441 inlägg
#3

Jag defininierar alltid ett gäng variablar i en fil jag inkluderar högst upp i alla filer, t.ex.

define("ROOTPATH", "/home/123/abc/myfolder/");
define("ABSPATH", "/");

Sen i t.ex. länkar (eller då jag inkluderar saker för den delen) så blir det:

<link rel="stylesheet" href="<?php echo ABSPATH;?>css/style.css" .../>

...eller...

require(ROOTPATH . "inc/fil.php");

...eller...

<a href="<?php echo ABSPATH;?>sida.php" .../>

Fungerar fint, jag har aldrig haft liknande problem som du beskriver.

/R en extra fördel med det här sättet är att det blir sjukt enkelt om man skulle behöva byta server, katalog eller något, eftersom man bara behöver ändra i sin definitionsfil.

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)