ugrás a tartalomhoz

htaccess gyökérkönyvtár átirányítás

vtsoftware · 2010. Nov. 27. (Szo), 00.20
Üdv mindenkinek.

Adott egy weboldal, amiben a képeket, linkeket a következő formában adtam meg.
A stílusfájlra mindenütt - akárhány almappáról legyen szó - így hivatkozok: <LINK rel="StyleSheet" href="/style/">
(Ebben a style könyvtárban htaccessel állítottam a "kiindulási fájlt".)
Így ha pl. a www....hu/weblap könyvtárból akarok a stílusfájlra hivatkozni akkor is ugyan így adom meg, nem ../-el.

Most viszont a weboldalnak indítani szándékozok egy aldomaint, ami egy új mappa.
Itt nem működhet ez a megoldás, mivel akkor nem a főkönyvtárban keresi a hivatkozott fájlt, hanem az aldomain könyvtárában.

Htaccess-el gondoltam megoldani a problémát.
De nem tudom hogy is lehetne.
Próbáltam így:
RewriteRule ^(.*) http://www.domain...hu/$1
(csak kísérleteztem)
De próbáltam így is, bár ez egy kicsit esélytelen és h_lyeség mivel minden új könyvtárat fel kéne vinnem:
RewriteRule ^(style)(.*) http://www.domain...hu/style/$1

A lényeg annyi, hogy egy könyvtárral lejjebbi fájlokra kéne irányítanom a kérést valahogy.

Ha valaki tudna megolást, annak nagyon hálás lennék.

Előre is köszönöm
 
1

Most viszont a weboldalnak

Poetro · 2010. Nov. 27. (Szo), 01.21
Most viszont a weboldalnak indítani szándékozok egy aldomaint, ami egy új mappa.

Nem értem az összefüggést az új mappa, az aldomain és a style problémád között. Ezügyben kérlek világosíts fel, mert nem egyértelmű mit szeretnel csinalni.
Szóval tegyük fel, hogy van most a www.example.com domained. Itt van mondjuk egy style mappád. Ez elérhető a http://www.example.com/style hivatkozással.

Van egy aldomained. Mondjuk aldomain.example.com. Itt is van egy style mappád(?), ami elérhető az http://aldomain.example.com/style hivatkozással. Tehát ha bármelyik domainen a /style/stylesheet.css-re hivatkozol, akkor megkapod az adott domainhez tartozó CSS fájlt.

Persze ebből még mindig nem derült ki, mi is a problémád, hogyan jönnek össze az aldomainek a mappákkal, és egyáltalán. Ha fájlokat akarsz megosztani a két domain között, akkor erre legegyszerűbb megoldás a symlink.
2

Nem éppen

vtsoftware · 2010. Nov. 27. (Szo), 01.34
Nem épp erre gondoltam...

Az example.com-on van egy style mappám.
Az ebben a mappában levő fájlokat szeretném elérni az aldomain.example.com-ról is.
Az aldomain ugyan azt a fejlécet használja mint az oldal.
Végülis úgy mint a base href, csak szerveresen.
3

symlink

Poetro · 2010. Nov. 27. (Szo), 12.43
Akkor symlinkkeld az aldomain oldalara a megfelelő mappákat. Ez a legegyszerűbb megoldás. Az átirányítás azért nem jó, mivel akkor a böngészőnek két lekérdezést kell végrehajtania, ami eleve nem szerencsés, egyszerűbb lenne az aldomain oldalán átírni a hivatkozásokat a /style helyett http://example.com/style-ra.
4

Symlink? Hogyan?

vtsoftware · 2010. Nov. 27. (Szo), 14.26
Ránéztem erre a symlinkre, de egyáltalán nem látom a lényegét, nem látom át a dolgot.

A legegyszerűbb persze az átírás, de ha az aldomainhoz átírom a fejléc fájlját akkor magán a domainen is ugyan az fogja keresni.
Ráadásul annyi helyen kéne átírni hogy annyit nem ér.

Htaccess-el nem lehet átirányítani az összes fájlt?
5

symlink

Poetro · 2010. Nov. 27. (Szo), 19.28
Az egy hivatkozás amivel egy másik fájlra vagy mappára hivatkozol. Azaz mikor a symlink egy könyvtárra hivatkozik, és belépsz abba a könyvtárba, akkor átkerülsz a hivatkozott könyvtárba. Képzeld úgy, mint egy virtuális hivatkozás. Vagy egy link a Windows alatt, amivel egy valódi könyvtárra vagy fájlra hivatkozol.

Az átirányítás, mint írtam, nem jó megoldás, mert a felhasználónak minden fájl esetben két lekérdezést kell tennie a szerverre, ezáltal lassabban tekinti meg az oldalt. Ráadásul még lehetséges, hogy a keresőmotorok is büntetni fognak miatta.

A legegyszerűbb persze az átírás, de ha az aldomainhoz átírom a fejléc fájlját akkor magán a domainen is ugyan az fogja keresni.

Ezt nem értem. Hiszen két külön fájlról beszélünk, nem. Vagy nem tudom, mire utalsz fejléc fájl alatt.
Ráadásul annyi helyen kéne átírni hogy annyit nem ér.

Most mennyi fejléc fájlról is beszélünk? Az egész kezd zavaros lenni. Ha segítséget vársz, akkor a legteljesebb körűen tájékoztasd az olvasókat a problémádról.
6

Elnézést...

vtsoftware · 2010. Nov. 27. (Szo), 21.07
Elnézésed kérem, de nem igazán tudom megfogalmazni.
Végülis jót mondasz, ahogy most olvasom a symlink tényleg jó lenne, de elindulni sem tudok vele, nem tudom hogy hol kell felhasználni.

Vegyük így:

symlink($target, $link);
Ha jól értem, a symlinknek megadott $link könyvtárat ha megnyitom, akkor az a $target-ben megadottra "ugrik" át és ott keresi a fájlt. (márha fájlról van szó)

De ezt a symlinket hogy kell használni?
Beírom a php fájlom első sorába a változókkal és slussz?
Onnantól a további futásban már a $link könyvtár a $target könyvtár lesz. (virtuálisan)

Szerk.: ha minden igaz rájöttem.

$path = "/home/user/domainem.hu/html/a";
$path_new = "/home/user/domainem.hu/html/b";

echo file_get_contents("a/111.txt")."<br>";

symlink($path_new, $path);

echo file_get_contents("a/111.txt");
Az a mappa nem létezik, a b viszont igen.
A symlink előtti file_get_contents-re file not exists hibát kaptam, mivel az tényleg nem létezik.
A symlink utáni viszont beolvasta.
Tehát sikerült... eddig.