web-dev-qa-db-fra.com

Redirection des URL IIS7 de la racine vers le sous-répertoire

J'utilise Windows Server 2008 avec IIS7. Je dois rediriger les utilisateurs qui viennent à www.mysite.com à wwww.mysite.com/menu_1/MainScreen.aspx. Voici la structure de fichier que j'ai pour les projets:

-Sites
 -Default Web Site
  -Menu_1
  -MenuService
  -VscWebService

Je vais vraiment apprécier toute aide à ce sujet.

71
user881148

C'est ici. Ajoutez ce code à votre fichier web.config :

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Root Hit Redirect" stopProcessing="true">
                <match url="^$" />
                <action type="Redirect" url="/menu_1/MainScreen.aspx" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

Il fera 301 redirections permanentes (URL sera changé dans le navigateur). Si vous voulez que cette "redirection" soit invisible (réécriture, redirection interne), utilisez cette règle (la seule différence est que "Redirect" a été remplacé par "Réécrire"):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Root Hit Redirect" stopProcessing="true">
                <match url="^$" />
                <action type="Rewrite" url="/menu_1/MainScreen.aspx" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
116
LazyOne

Je pense que cela pourrait être fait sans IIS URL Rewrite. <httpRedirect> supporte les caractères génériques, vous pouvez donc le configurer comme suit:

  <system.webServer>
    <httpRedirect enabled="true">
      <add wildcard="/" destination="/menu_1/MainScreen.aspx" />
    </httpRedirect>
  </system.webServer>

Notez que la fonctionnalité "Redirection HTTP" doit être activée sur IIS - voir redirections HTTP

40
Shad

Je ne pouvais pas que cela fonctionne avec la réponse acceptée, principalement parce que je ne savais pas où entrer ce code. J'ai cherché partout l'explication de l'outil de réécriture d'URL qui avait du sens, mais je n'en ai trouvé aucune. J'ai fini par utiliser l'outil de redirection HTTP dans IIS.

  1. Choisissez votre site
  2. Cliquez sur HTTP Redirect dans la section IIS (assurez-vous que le service de rôle est installé)
  3. Cochez "Rediriger les demandes vers cette destination"
  4. Entrez où vous souhaitez rediriger. Dans votre cas, "wwww.mysite.com/menu_1/MainScreen.aspx"
  5. Dans Behavior Redirect, j'ai découvert que je devais cocher la case "Réacheminer uniquement les requêtes vers le contenu de ce répertoire (pas les sous-répertoires), sinon cela irait dans une boucle. Voir ce qui fonctionne pour vous.".

J'espère que cela t'aides.

14
Jarrod

Vous devez le télécharger à partir de Microsoft: http://www.Microsoft.com/en-us/download/details.aspx?id=7435 .

L'outil s'appelle "Microsoft URL Rewrite Module 2.0 for IIS 7") et est décrit comme suit par Microsoft: "URL Rewrite Module 2.0 fournit un mécanisme de réécriture basé sur des règles permettant de modifier les URL demandées avant qu'elles ne soient obtenues. traitées par le serveur Web et pour modifier le contenu de la réponse avant qu'il ne soit servi aux clients HTTP "

3
mikem