web-dev-qa-db-fra.com

Comment rediriger un chemin d'URL dans IIS?

Dans IIS 6.0, existe-t-il un moyen simple de rediriger les demandes d'un dossier vers un autre dossier, tout en préservant le reste du chemin d'accès.

par exemple.

Si j'ai déplacé le contenu de:
mysite.org.uk/stuff
à
stuff.mysite.org.uk/

Puis-je rediriger automatiquement les demandes de pages spécifiques telles que
mysite.org.uk/stuff/countrybriefing/tanzania/travel.html
à
stuff.mysite.org.uk/countrybriefing/tanzania/travel.html

Je sais que .htaccess peut faire des choses comme celle-ci dans Apache, existe-t-il un équivalent dans IIS?

37
codeulike

Tiré de Microsoft Technet .

Redirection de sites Web dans IIS 6.0 (IIS 6.0)


Lorsqu'un navigateur demande une page ou un programme sur votre site Web, le serveur Web localise la page identifiée par l'URL et la renvoie au navigateur. Lorsque vous déplacez une page sur votre site Web, vous ne pouvez pas toujours corriger tous les liens qui renvoient à l'ancienne URL de la page. Pour vous assurer que les navigateurs peuvent trouver la page à la nouvelle URL, vous pouvez demander au serveur Web de rediriger le navigateur vers la nouvelle URL.

Vous pouvez rediriger les demandes de fichiers d'un répertoire vers un autre répertoire, vers un autre site Web ou vers un autre fichier d'un autre répertoire. Lorsque le navigateur demande le fichier à l'URL d'origine, le serveur Web lui demande de demander la page à l'aide de la nouvelle URL.

Important

Vous devez être membre du groupe Administrateurs sur l'ordinateur local pour exécuter la ou les procédures suivantes. Pour des raisons de sécurité, connectez-vous à votre ordinateur à l’aide d’un compte ne faisant pas partie du groupe Administrateurs, puis utilisez la commande runas pour exécuter IIS en tant qu’administrateur. À l’invite d’une commande , tapez runas/user: nom_compte_administrateur "mmc% systemroot%\system32\inetsrv\iis.msc".

Procédures

Pour rediriger les demandes vers un autre site Web ou répertoire


  1. Dans IIS, développez l’ordinateur local, cliquez avec le bouton droit sur le site Web ou le répertoire que vous souhaitez rediriger, puis cliquez sur Propriétés.

  2. Cliquez sur l'onglet Répertoire de base, Répertoire virtuel ou Répertoire.

  3. Sous Le contenu de cette source doit provenir, cliquez sur Une redirection vers une URL.

  4. Dans la zone Rediriger vers, tapez l'URL du répertoire ou du site Web de destination. Par exemple, pour rediriger toutes les demandes de fichiers du répertoire Catalog vers le répertoire NewCatalog, tapez/NewCatalog.

Pour rediriger toutes les demandes vers un seul fichier


  1. Dans IIS, développez l’ordinateur local, cliquez avec le bouton droit sur le site Web ou le répertoire que vous souhaitez rediriger, puis cliquez sur Propriétés.

  2. Cliquez sur l'onglet Répertoire de base, Répertoire virtuel ou Répertoire.

  3. Sous Le contenu de cette source doit provenir, cliquez sur Une redirection vers une URL.

  4. Dans la zone Rediriger vers, tapez l'URL du fichier de destination.

  5. Cochez la case L'URL exacte entrée ci-dessus pour empêcher le serveur Web d'ajouter le nom de fichier d'origine à l'URL de destination.

    Vous pouvez utiliser des caractères génériques et des variables de redirection dans l'URL de destination pour contrôler précisément la manière dont l'URL d'origine est traduite dans l'URL de destination.

    Vous pouvez également utiliser la méthode de redirection pour rediriger toutes les demandes de fichiers d’un répertoire particulier vers un programme. En règle générale, vous devez transmettre tous les paramètres de l'URL d'origine au programme, à l'aide de variables de redirection.

    Pour rediriger des demandes vers un programme


  6. Dans IIS, développez l’ordinateur local, cliquez avec le bouton droit sur le site Web ou le répertoire que vous souhaitez rediriger, puis cliquez sur Propriétés.

  7. Cliquez sur l'onglet Répertoire de base, Répertoire virtuel ou Répertoire.

  8. Sous Le contenu de cette source doit provenir, cliquez sur Une redirection vers une URL.

    Dans la zone Rediriger vers, tapez l'URL du programme, y compris les variables de redirection nécessaires pour transmettre les paramètres au programme. Par exemple, pour rediriger toutes les demandes de scripts d'un répertoire Scripts vers un programme de journalisation qui enregistre l'URL demandée et tous les paramètres transmis avec l'URL, tapez /Scripts/Logger.exe?URL=$V+PARAMS=$P. $ V et $ P sont des variables de redirection.

  9. Cochez la case L'URL exacte entrée ci-dessus pour empêcher le serveur Web d'ajouter le nom de fichier d'origine à l'URL de destination.

32
Dmitri Farkov

Formatez l'URL de redirection de la manière suivante:

stuff.mysite.org.uk$S$Q

Le $S dira que tout chemin doit être appliqué à la nouvelle URL. $Q indique que toute variable de paramètre doit être transmise à la nouvelle URL.

Dans IIS 7.0, vous devez activer l'option Redirect to exact destination. Je crois qu'il doit y avoir une option comme celle-ci dans IIS 6.0 aussi.

35
Nirmal

Si vous devez créer de nombreuses réorientations, maintenir des charges de répertoires virtuels sur les lieux est un cauchemar. Vous pouvez essayer d’utiliser la redirection ISAPI avec une extension IIS. Tous les re-dirigés sont alors gérés à un seul endroit.

http://www.isapirewrite.com/docs/

Il vous permet également de faire correspondre des modèles basés sur des expressions régulières, etc. J'ai utilisé lorsque j'ai dû rediriger des centaines de pages, ce qui a permis de gagner beaucoup de temps.

4
Jon Jones

Voici la configuration pour ISAPI_Rewrite :

RewriteBase /

RewriteCond% {HTTP_Host} ^ mysite.org.uk $ [NC]

RewriteRule ^ stuff /(.+)$ http://stuff.mysite.org.uk/$1 [NC, R = 301, L]

1
TonyCool