web-dev-qa-db-fra.com

Question de redirection de page Web IIS7

Noob question ici. J'ai cherché, mais je n'ai rien trouvé qui puisse expliquer comment faire cela. J'utilise IIS7 sur une batterie de serveurs Web à 2 serveurs avec une charge de trafic équilibrée sur l'un des deux serveurs.

J'ai une URL http://something./org qui va à la page http://something.mydomain.com

Sur cette page, il existe un hyperlien sur lequel les utilisateurs peuvent cliquer pour les amener à http://something.mydomain.com/search.

Je voudrais rediriger les utilisateurs qui vont sur http://somethingsearch.org/ pour les rediriger vers http://something.mydomain.com/search

Est-ce possible? Je pense qu'une règle de réécriture ISAPI pourrait être nécessaire pour accomplir cela, mais je ne suis pas sûr.

Désolé si les informations fournies ne sont pas suffisantes. Je venais juste de me charger de cette petite tâche un peu plus tôt dans la journée et ils cherchent un redressement rapide. S'il y a des questions ou toute autre information dont vous pourriez avoir besoin, faites-le moi savoir et je verrai si je peux la creuser.

1
Fernando Vega

Mon collègue qui a pris cela en charge a été en mesure de proposer une solution qui a fonctionné pour nous sur celui-ci. Je pensais juste que je posterais pour fermer la boucle sur celui-ci, donc si quelqu'un d'autre rencontrait un problème similaire, cela pourrait également les aider.

Il a écrit une règle ISAPI ReWrite/ReDirect à l'aide du gestionnaire ISAPI ReWrite pour ISS, qui ressemble à ceci:

RewriteEngine on

RewriteCond %{HTTP_Host} ^(www\.)?domain\.org$

RewriteRule ^(.*)$ http://something.domain.com/Search [I,O,RP,L]

Cela correspond tout à fait à ce que vous disiez, mais le problème qu'il a rencontré était d'essayer de conserver la même URL http://something.org tout en redirigeant vers un sous-répertoire du site.

Donc, il vient de dire au diable et redirigé vers une autre URL avec le sous-répertoire inclus.

Merci à tous pour votre contribution !!

1
Fernando Vega

J'ai une règle de réécriture qui oblige l'URL de mon site à porter le préfixe " http: // www ". Ceci est principalement pour Google Analytics. Donc, si quelqu'un va vers http://mywebsite.com , il sera redirigé vers http://www.mywebsite.com .

Vous pouvez accomplir cela de deux manières:

  • Créez la réécriture dans IIS si vous avez installé IIS URL Rewrite. Voici comment cela se fait:

Ajouter une règle de réécriture dans IIS Manager

Section URL de correspondance

  • Nommez la règle
  • Sélectionnez "Correspond au modèle" sous URL demandée:
  • Sélectionnez "Expressions régulières" sous Utilisation de:
  • Ajouter cette expression "^ (. *) $"
  • Cochez "Ignorer le cas"

    Match URL Section Screen Shot


Section Conditions

  • Définissez "Regroupement logique" sur "Correspondre à tous"
  • Cliquez sur le bouton "Ajouter"
  • Entrez "{HTTP_Host}" pour l'entrée de condition
  • Choisissez si vous voulez ou non qu'il corresponde au motif (dans mon cas, je ne l'ai pas fait)
  • Entrez l'expression "^ www. (. +) $"
  • Cochez "Ignorer le cas"

    Add Condition


Section d'action

  • Sélectionnez "Redirect" pour le type d'action
  • Entrez votre URL de redirection - dans mon cas, il s'agissait de: " http: // www . {HTTP_Host}/{R: 1}"
  • Cochez "Ajouter une chaîne de requête"
  • Sélectionnez "Permanent (301)" comme type de redirection

enter image description here

Enregistrez la règle

  • Si le site est un site .NET, éditez le fichier web.config pour ajouter la règle dans la section "system.webServer".

    <rewrite>
      <rules>
        <rule name="wwwrewrite" enabled="true" stopProcessing="true">
          <match url="^(.*)$" ignoreCase="true" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{HTTP_Host}" pattern="^www\.(.+)$" negate="true" />
          </conditions>
          <action type="Redirect" url="http://www.{HTTP_Host}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
    

J'espère que cela t'aides....

1
Aaron Davis

Vous pouvez utiliser le extension IIS URL Rewrite de Microsoft.

IIS URL Rewrite 2.0 permet aux administrateurs Web de créer des règles puissantes pour implémenter des URL plus faciles à mémoriser pour les utilisateurs et plus faciles à rechercher pour les moteurs de recherche. En utilisant des modèles de règles, des cartes de réécriture, des fournisseurs .NET et d'autres fonctionnalités intégrées à IIS Manager, les administrateurs Web peuvent facilement configurer des règles pour définir le comportement de réécriture d'URL basé sur les en-têtes HTTP, les en-têtes de réponse ou de requête HTTP, IIS variables serveur et même règles de programmation complexes. En outre, les administrateurs Web peuvent effectuer des redirections, envoyer des réponses personnalisées ou arrêter des demandes HTTP en fonction de la logique exprimée dans les règles de réécriture.

IIS URL Rewrite est l'équivalent d'Apache mod_rewrite pour IIS.

1
Larry Silverman