2009-08-08 4 views
0

J'ai un répertoire racine sur un serveur Web qui est lié à un certain nombre d'URL. Je souhaite utiliser l'événement de demande de début d'application d'un fichier global.asax pour rediriger les demandes vers les répertoires contenant le contenu des sites Web pertinents. Donc, en termes de code pseudo quelque chose comme ça -Est-il possible d'avoir uniquement un fichier global.asax dans une application asp.net?

Si URL.Contains ("www.somthing.com") Puis rediriger l'utilisateur vers le répertoire x Si URL.Contains ("www.somthingelse.com") Puis détourner l'utilisateur à répertoire y

Je pensais que je serais en mesure d'accomplir cela en déposant un fichier global.asax avec le code approprié dans le répertoire racine des serveurs Web (je veux éviter les complications comme un fichier web.config car c'est son contenu affectera les autres applications que j'ai dans les sous-répertoires). Malheureusement, cette approche ne semble pas fonctionner car l'événement de demande de début d'application ne semble pas déclencher. J'ai contourné le problème en ajoutant un fichier default.aspx et en en faisant le document par défaut pour le répertoire racine. Cela semble fonctionner, je suppose que c'est parce que asp.net compile le fichier default.aspx et compile à son tour le fichier global.asax qui permet aux événements de se déclencher.

Ma solution de contournement est-elle la meilleure façon d'accomplir ce que je dois faire ou existe-t-il un moyen plus simple de déclencher les événements global.asax en utilisant un seul fichier?

Répondre

2

On dirait que vous recherchez une redirection basée sur l'en-tête d'hôte.

Vous pouvez accomplir cela en configurant votre serveur ISA comme this ou votre IIS comme this.

+0

Merci pour la réponse. Le serveur web est hébergé sur discount asp.net et je ne pense pas qu'ils donnent accès aux en-têtes de l'hôte. D'où la solution alambiquée! – ipr101

Questions connexes