green field

Multiple stranice temeljene na nazivima mape

Hostanje multiplih stranica temeljenih na nazivima mape zahtjeva da se glavna stranica pokrene kao osnova Web stranice (root), odnosno, mora imati ovakvu url strukturu:
http://hostname/

Podstranice će biti temeljene na nazivu prve mape prema segmentu host imena kao:
http://hostname/somefolder/Default.aspx

Pripazite ako su IIS ili Apache podešeni tako da ASP.NET upravlja svim zahtjevima, tada Default.aspx nije potreban. Standardna konfiguracija IIS-a ne predaje sve zahtjeve ASP.NET-u, nego ASP.NET upravlja samo određenim datotekama, kao .aspx datoteke. Razlog tome je veća učinkovitost kada IIS direktno upravlja zahtjevima za datoteke slikovnih podataka i html stranice. Web server izgrađen u Visual Studio upravlja svim zahtjevima koristeći ASP.NET, tako da možete očekivati da se ponaša na isti način kada je razmješten na IIS-om, što nije slučaj. U standardnoj konfiguraciji IIS-a, zahtjev kao http://hostname/imemape/ biti će najprije obrađen od strane IIS-a, upravilu će tražiti Default.aspx datoteku u mapi naziva somefolder i ako ga pronađe predat će dalje zahtjev ASP.NET-u, no ako mapa ne postoji i/ili se datoteka tamo ne nalazi, dogodit će se greška 404 page not found, prije nego će zahtjev predati ASP.NET-u.

Dakle, ako želite pokrenuti rad sa urlo-ovima kao http://hostname/imemape/ trebat ćete ili napraviti ASP.NET standardni rukovatelj (handler) za sve zahtjeve, ili provjeriti da mapa postoji i da sadrži datoteku nazvanu Default.aspx. Default.aspx datoteka može biti samo prazna tekstualna datoteka, koja ne treba imati nikakav kod ili sadržaj, njezina jedina svrha je ta da učini da ASP.NET obradi zahtjev. Odavdje mojoPortal kod detektira mapu preslikanu na stranicu i dostavlja ispravan sadržaj.

Bez obavljanja jedne od ovih stvari, jedini način da ASP.NET obradi zahtjev je onda ako url završava sa Default.aspx ili somepage.aspx, gdje je somepage.aspx url definiran od strane sitea (stranice).

1. Najprije pokrenite rad prve stranice
2. Provjerite da je web.config postavka AllowMultipleSites podešena kao istinita
3. U Web.config-u, podesite UseFoldersInsteadOfHostnamesForMultipleSites="true"
4. Otiđite na Admin > Site Settings na prvoj stranici. Trebali biste vidjeti drop down listu pored naziva stranice, odaberite "New Site", zatim unesite ime za novu stranicu i kliknite Save

New Site Drop Down


Nakon što ste spremili novu stranicu, pojavit će se neke nove postavke na dnu za podešavanje nove stranice.

Site Folder Admin

Pripazite na to da smo preslikali mapu nazvanu "imemape" ("somefolder") na drugu stranicu (second site). Dakle, ako se naša glavna stranica nalazi na http://localhost/, sada možemo otvoriti preglednik i otići na http://localhost/imemape/Default.aspx kako bi vidjeli drugu stranicu.

Nazivi mapa mogu imati jedino alfanumeričke znakove, bez razmaka. Nazivi mapa koji su u konfliktu sa postojećim mapama sustava mojoPortal-a ne mogu se koristiti. Ako trebate blokirati korištenje dodatnih naziva mape možete ih priključiti onima koji su izlistani u Web.config DisallowedVirtualFolderNames postavci korištenjem polukolona kako bi razdvojili nazive mape za blokiranje.

Ako želite da url-ovi rade bez Default.aspx strane (odnosno http://nekihost/imemape), trebate kreirati i fizičku mapu ispod osnove stranice (root), sa istim nazivom (odnosno "somefolder" kako je prikazano iznad ili bez obzira koje ime mape odaberete) i tamo stavite praznu tekstualnu datoteku nazvanu Default.aspx. Inače ćete trebati pogledati u podešavanje IIS-a ili apache-a da bi svi zahtjevi bili obrađeni od strane ASP.NET-a.

Ograničenja

Vrlo važna stvar za razumjevanje korištenja podstranica temeljenih na mapi je ta da budući da sve stranice djele zajedničko ime hosta, jednako tako djele istu fizičku cookie datoteku i istu kartu provjere autentičnosti. U mojoPortal kodu mi to olakšavamo koliko god je moguće korištenjem site specific cookie naziva, kako bi pomogli u držanju većine cookies-a odvojenih. S obzirom da je cookie provjere autentičnosti zajednički korišten (dijeljen), ako se prijavite na jednu stranicu, odjavit će vas sa bilo koje druge stranice koja radi u istoj instalaciji, ako je vaše ime prijave drugačije. Razlog tome je ime prijave spremljeno u karti provjere autentičnosti koja je dijeljena kroz podstranice temeljene na mapi (folder based sub sites). Ako je vaše ime prijave isto kroz sve stranice, nećete biti odjavljeni sa drugih stranica, no trebat ćete se prijaviti na svaku stranicu posebno. Odnosno, prijava na jednoj stranici vas ne prijavljuje na sve stranice.

Problematika iznad odnosi se samo na podstranice temeljene na mapi. Podstranice temeljene na nazivima hosta imaju drugačije fizičke cookie datoteke i zbog toga nemaju interakcije.

Form Wizard Pro - Easy Forms for mojoPortal