Autor Zpráva
Lumír
Profil *
V apachi mám nastaven DocumentRoot např. C:/weby. Na disku mám různé weby v podadresářích C:/weby/web1/, C:/weby/web2/ atd. Na jednom z webů, např. web2 chci používat mod_rewrite. Do C:/weby/web2/ umístím .htaccess např. s tímto pravidlem:

RewriteEngine On

RewriteRule ^katalog/([a-zA-Z0-9-]*)/(.*)\.html$ /web2/index.php?cislo=$1&nazev=$2 [L,QSA]


a všechny relativní odkazy v souborech webu musí vypadat takto:

...href="/web2/katalog/12/polozka-v-katalogu.html", ...href="/web2/styly/styl.css", ...img src="/web2/obrazky/obr1.gif" atd.


Takto nastavené cesty s /web2 v odkazech fungují. Nemohu však přijít na to - a prosím o radu - jak dosáhnout toho, aby v RewriteRule ani v odkazech nezačínala cesta /web2 ale jen lomítkem, tzn. takto.:

...href="/katalog/12/polozka-v-katalogu.html", ...href="/styly/styl.css", ...img src="/obrazky/obr1.gif" atd.


Možná pomocí RewriteBase, ale nejde mi to. Díky.
Petra
Profil
Jestli dobře chápu, tak stačí mít nastavený web2 jako kořenový adresář a používat rewrite rule bez toho, takto:

RewriteRule ^katalog/([a-zA-Z0-9-]*)/(.*)\.html$ /index.php?cislo=$1&nazev=$2 [L,QSA]
Lumír
Profil *
Ano, když nastavím jako kořenový adresář C:/weby/web2, tak to funguje, ale potíž je právě v tom, že potřebuju jako kořenový mít právě C:/weby a pro web2, web4 atd. používat různé soubory .htaccess.
Petra
Profil
Ajo. Tak to se musí vytvořit virtuální servery.
Lumír
Profil *
Díky, zkusím to s virt. servery.

Zatím jsem přišel na řešení bez nich, není asi moc elegantní, ale zdá se, že funguje: Do indexu přidám
<base href="http://localhost/web2/" />

a všechny relat. odkazy budou začínat tečkou ./:
...href="./katalog/12/polozka-v-katalogu.html", ...href="./styly/styl.css", ...img src="./obrazky/obr1.gif" atd.

V RewriteRule zůstane /web2 ale to už tak nevadí.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0