web-dev-qa-db-fra.com

301 Rediriger un domaine vers un autre à l'aide de web.config

J'ai plusieurs domaines pointant vers un emplacement d'hébergement. Je souhaite établir l'un des domaines comme mon domaine principal et, par conséquent, je souhaite effectuer une redirection 301 vers ce domaine principal lorsqu'un utilisateur accède à mon site à partir d'un domaine secondaire.

Par exemple:

www.example.com

Ceci est mon domaine principal. Je souhaite que tous les autres domaines associés à mon site soient redirigés ici.

Si un utilisateur entre:

www.test.com ou www.test.com/anypage etc.

Ensuite, je veux que l'utilisateur soit redirigé vers la version d'exemple de cette page.

Comment faire cela en utilisant le fichier web.Config de mon application? La raison pour laquelle je demande est que mon hébergeur a généralement un outil dans son back-office qui me permet de configurer cette redirection, cependant, notre client a opté pour un autre hébergeur qui ne fournit pas un tel outil.

J'ai essayé de faire cette redirection en utilisant le code suivant mais cela ne semble pas fonctionner:

<rule name="Canonical Host Name" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTP_Host}" negate="true" pattern="^test\.com$" />
  </conditions>
  <action type="Redirect" url="http://www.example.com/{R:1}}" redirectType="Permanent" />
</rule>

Mon application est un site propulsé par Umbraco et a donc plusieurs entrées system.webServer dans le fichier web.config. Il se peut que j'aie entré ce code au mauvais endroit, mais toute aide ici serait grandement appréciée car je n'ai l'habitude de faire que des redirections 301 dans des fichiers .htaccess.

20
jezzipin

Ce n'est pas vraiment lié au parapluie, mais je pense que ce que vous voulez faire est le suivant:

<rewrite>
  <rules>
    <rule name="redirect" enabled="true">
      <match url="(.*)" />
        <conditions>
          <add input="{HTTP_Host}" negate="true" pattern="^www\.example\.com$" />
        </conditions>
      <action type="Redirect" url="http://www.example.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

Faites correspondre toutes les URL à moins que la partie du nom d'hôte soit exactement www.example.com - et redirigez-les vers www.example.com/what.

30
Claus