ASP.NET MVC étant hébergé sur DiscountAsp.Net et utilisant un pointeur de domaine

StackOverflow https://stackoverflow.com/questions/1003533

  •  05-07-2019
  •  | 
  •  

Question

J'héberge un site Web sur DiscountASP.NET et toute option leur permettant d'ajouter un pointeur de domaine pour un domaine distinct utilisant votre même compte d'hébergement. Ainsi, si le site d'origine est abc.com, vous pouvez acheter un pointeur de domaine sur xyz.com et les deux pointent initialement sur le même emplacement racine. Utiliser la racine pour abc.com est correct, mais lorsque xyz.com est l'adresse, je souhaite rediriger vers un sous-répertoire distinct contenant le code pour xyz.com. Où pourrais-je essayer de rediriger xyz.com afin de référencer le code du sous-répertoire au lieu d'utiliser le répertoire racine? Je pense que le traitement du fichier Global.asax, où réside généralement tout le code de routage, est trop tardif, car je souhaite que le fichier Global.asax de chaque site gère ses sites respectifs de manière indépendante.

Un message publié sur le forum DiscountAsp.Net pour ASP classique a expliqué comment ajouter du code semblable à celui-ci dans le document par défaut.

Si InStr (UCase (Request.ServerVariables ("SERVER_NAME"))), UCase ("subdomain1.YourHostedDomainName.com")) > 0 alors         Response.Redirect ("/ sous-domaine1") ElseIf InStr (UCase (Request.ServerVariables ("SERVER_NAME"))), UCase ("subdomain2.YourHostedDomainName.com")) > 0 alors         Response.Redirect ("/ subdomain2") ElseIf InStr (UCase (Request.ServerVariables ("SERVER_NAME"))), UCase ("subdomain3.YourHostedDomainName.com")) > 0 alors         Response.Redirect ("/subdomain3/home.asp") Fin si

ASP.NET MVC est mon premier projet Web et, dans la mesure où je comprends ce que je comprends, tous les flux de routage passent par RegisterRoutes () et la collection de routage définie dans Global.asax. Des idées?

Était-ce utile?

La solution

Vous devez transformer le sous-dossier en une application distincte (dans le panneau de configuration de DiscountAsp.net)

.

Ensuite, essayez d'écrire un HttpModule qui appelle Response.Redirect pour rediriger le navigateur vers le sous-dossier du domaine racine.

Si vous souhaitez conserver vos utilisateurs dans le sous-domaine, je ne pense pas que ce soit possible. Je n'ai jamais utilisé ASP .Net MVC, mais je suppose que les itinéraires sont enregistrés par AppDomain , ce qui signifie que le dossier de chaque sous-domaine doit être son propre Application . . Il n’existe aucun moyen (AFAIK) de transférer l’exécution entre AppDomain ( Server.Transfer ne le fera pas).

Si je me trompe et qu'il est possible de le faire sans créer des Application distincts, créez un HttpModule qui appelle Server.Transfer sur les demandes du sous-domaine (et assurez-vous que les liens sont relatifs au dossier représentant le sous-domaine; ~ les chemins ne fonctionneront pas).

Autres conseils

Le gestionnaire d’itinéraires dans MVC consiste à mapper les URL aux contrôleurs. Les contrôleurs sont du code, et l'emplacement n'a pas d'importance. Je ne suis pas au courant d'une façon d'utiliser le routage pour effectuer la redirection, ce que vous recherchez. DiscountASP.Net devrait avoir un moyen de faire pointer votre nouveau domaine vers un autre dossier. Je vérifierais votre panneau de contrôle pour savoir comment faire.

Si vous utilisez IIS 7, vous utiliserez probablement des en-têtes d’hôte pour effectuer la mise en scène à votre place. Dans cette situation (IIS 7 ou non), vous devez savoir que vous allez probablement exploiter un site Web sur un site Web. Si votre site racine n’est pas asp.net, les choses vont probablement être plus simples. Toutefois, si votre racine (abc.com) est un site asp.net (cela ne semble pas être le cas de votre question, mais c’est une bonne information, donc je vais vous dire quand même), les web.configs seront additifs.

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

Sachez que le fichier web.config de abc.com sera appliqué en premier, puis xyz.com. Ils peuvent entrer en conflit et créer des problèmes gênants. Cependant, vous devez d'abord vérifier dans votre panneau de configuration la possibilité de pointer votre nouveau domaine vers un autre dossier. L'exécution de plusieurs sites Web à partir d'un compte d'hébergement partagé entraîne un nombre potentiellement important de maux de tête. Je vous souhaite donc bonne chance.

Vous semblez essayer de gérer deux sites Web distincts, l'un sur un sous-domaine.

Je n’utilise pas DiscountAsp.Net, mais ils devraient vous permettre de configurer un site Web distinct qui dessert votre sous-domaine. contactez leur support.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top