Citat:
Originally posted by totoo@Jun 17 2007, 23:58
går det att på något sätt (det kanske är helt orimligt) att varje katalog automatiskt får roten typ där indexfilen ligger? Det måste ju finnas något bekvämt knep som alla andra använder. Kan någon förklara hur resultatet blir efter man har rockat loss i virtual hosts-inställningarna?
Detta vore grymt... Tänk er denna struktur:
x:/www/a/
x:/www/b/
x:/www/c/
Och om jag på någon av dessa webbplatser länkar till / så kommer jag tillbaka till a/b/c beroende på vilken jag är i...
|
Låtsas att du är en webbläsare. När du blir tillsagd att följa en länk, vad har du då för information för att kunna följa länken?
1) Du vet adressen till den aktuella sidan (ex /a/ko/apa.htm)
2) Du vet adressen som står i länken (ex /anka/apa.htm)
Webbläsaren vet ingenting om att /a råkar vara en virtuell mapp på servern. Det är bara en helt vanlig mapp, precis som vilken annan mapp som helst. Den vet inte att den "borde" ha /a som rot istället för /, om du inte anger det med base-taggen (om jag nu minns rätt ang. base-taggen dvs :P )
Tänk nu att du är en webbserver. Webbläsaren befanns sig nyss på /a/ko/apa.htm, och har nu skickat en förfrågan om /anka/apa.htm. Servern vet följande:
1) Att det kommit en förfrågan om /anka/apa.htm
2) Ev. att servern vet att föregående sida var /a/ko/apa.htm
2:an bygger på att webbläsaren skickar med referer, men det ska man inte lita på. Vad händer om den inte finns, t.ex. för att användaren har kopierat länken och skickat till en kompis? Jo, då finns den inte. Och ibland så skickas den inte. Så i praktiken måste det räcka med att veta 1.
Det finns dock en sak jag inte sagt: Både webbläsaren och servern vet om vilket host-header/ip som används, och host-headern skickas alltid med när det gäller HTTP version 1.1, som i princip är det enda som används på nätet, tyvärr inte kompatibel med ssl dock, för ssl är det enda unika ip-adressen på den fronten..
Slutsats: Det finns _inget_ sätt att leka med rötter mer än just med host-headern, eller VirtualHost som jag har för mig att det heter i apaches config-fil.