Domanda

Ospito un sito Web su DiscountASP.NET e hanno la possibilità di aggiungere un puntatore di dominio per un dominio separato utilizzando il tuo stesso account di hosting. Pertanto, se il sito originale è abc.com è possibile acquistare un puntatore di dominio su xyz.com ed entrambi inizialmente puntano alla stessa posizione principale. L'uso del root per abc.com è OK, ma quando xyz.com è l'indirizzo, voglio reindirizzare a una sottodirectory separata che contiene il codice per xyz.com. Dove dovrei provare a reindirizzare xyz.com per fare riferimento al codice della sottodirectory invece di utilizzare la directory principale? Sto pensando che gestirlo come Global.asax dove in genere risiede tutto il codice di routing è troppo tardi, poiché voglio che il file Global.asax di ciascun sito gestisca i rispettivi siti in modo indipendente.

Un post sul forum DiscountAsp.Net per ASP classico ha discusso l'aggiunta di codice come il seguente al documento predefinito.

Se InStr (UCase (Request.ServerVariables (" SERVER_NAME ")), UCase (" sottodominio1.YourHostedDomainName.com ")) > 0 Quindi         Response.Redirect (" / Subdomain1 ") Altrimenti Se InStr (UCase (Request.ServerVariables (" SERVER_NAME ")), UCase (" sottodominio2.YourHostedDomainName.com ")) > 0 Quindi         Response.Redirect (" / subdomain2 ") Altrimenti Se InStr (UCase (Request.ServerVariables (" SERVER_NAME ")), UCase (" sottodominio3.YourHostedDomainName.com ")) > 0 Quindi         Response.Redirect (" /subdomain3/home.asp") End If

ASP.NET MVC è il mio primo progetto Web e per quello che ho capito tutti i flussi di routing attraverso RegisterRoutes () e la raccolta di rotte che è impostata in Global.asax. Qualche idea?

È stato utile?

Soluzione

Devi rendere la sottocartella un Applicazione separato (nel pannello di controllo di DiscountAsp.net)

Quindi, prova a scrivere un HttpModule che chiama Response.Redirect per reindirizzare il browser alla sottocartella nel dominio principale.

Se vuoi mantenere i tuoi utenti nel sottodominio, non credo sia possibile. Non ho mai usato ASP .Net MVC, ma suppongo che i percorsi siano registrati per- AppDomain , il che significa che la cartella per ciascun sottodominio dovrebbe essere la sua Applicazione . Non è possibile (AFAIK) trasferire l'esecuzione attraverso AppDomain s ( Server.Transfer non lo farà).

Se sbaglio, ed è possibile farlo senza creare Applicazione , crea un HttpModule che chiama Server.Transfer su richieste dal sottodominio (e assicurarsi che i collegamenti siano relativi alla cartella che rappresenta il sottodominio; i percorsi ~ non funzioneranno).

Altri suggerimenti

Il route manager in MVC deve mappare gli URL ai controller. I controller sono codice e la posizione non ha importanza. Non sono a conoscenza di un modo per utilizzare il routing per eseguire il reindirizzamento che è quello che stai cercando. DiscountASP.Net dovrebbe avere un modo per indirizzare il tuo nuovo dominio su una cartella diversa, controllerei il tuo pannello di controllo per un modo per farlo.

Se sei su IIS 7, è probabile che questo utilizzi le intestazioni host per fare la regia per te. In questa situazione (IIS 7 o meno), dovresti essere consapevole che probabilmente gestirai un sito Web in un sito Web. Se il tuo sito radice non è asp.net, le cose probabilmente saranno più facili, tuttavia, se la tua radice (abc.com) è un sito asp.net (sembra che non sia il caso della tua domanda, ma è una buona informazione, quindi ti dirò comunque) il web.configs sarà additivo.

- root
|
|- xyz.com
 |
 |- web.config (xyz.com)
|
|- web.config (abc.com)

Tieni presente che prima verrà applicato il web.config di abc.com, quindi xyz.com, che possono entrare in conflitto e creare fastidiosi problemi. Ma dovresti prima controllare nel tuo pannello di controllo un modo per indirizzare il tuo nuovo dominio in una cartella diversa. La gestione di più siti Web da un account di hosting condiviso comporta un numero potenzialmente elevato di mal di testa, quindi ti auguro buona fortuna.

Sembra che tu stia tentando di eseguire due siti Web separati, uno su un sottodominio.

Non utilizzo DiscountAsp.Net, ma dovrebbero consentire all'utente di impostare un sito Web separato che offra il proprio sottodominio; contattare il loro supporto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top