web-dev-qa-db-fra.com

Configuration de la redirection dans le fichier web.config

J'essaie de rediriger des URL peu amicales avec des URL plus descriptives. Ces URL se terminent par .aspx?cid=3916 avec les derniers chiffres différents pour chaque page de nom de catégorie. Je veux qu'il redirige plutôt vers Category/CategoryName/3916. J'ai essayé cela dans le web.config fichier:

<location path="Category.aspx?cid=3916">
<system.webServer>
  <httpRedirect enabled="true" destination="http://www.site.com/Category/CategoryName/3916" httpResponseStatus="Permanent" />
</system.webServer>

mais comme cela ne s'est pas terminé uniquement avec l'extension, cela n'a pas fonctionné. Y a-t-il un moyen facile de faire fonctionner cela? J'utilise IIS 7.5.

47
Pear Berry
  1. Ouvrez web.config dans le répertoire où résident les anciennes pages
  2. Ajoutez ensuite le code pour l'ancien chemin d'emplacement et la nouvelle destination comme suit:

    <configuration>
      <location path="services.htm">
        <system.webServer>
          <httpRedirect enabled="true" destination="http://domain.com/services" httpResponseStatus="Permanent" />
        </system.webServer>
      </location>
      <location path="products.htm">
        <system.webServer>
          <httpRedirect enabled="true" destination="http://domain.com/products" httpResponseStatus="Permanent" />
        </system.webServer>
      </location>
    </configuration>
    

Vous pouvez ajouter autant de chemins de localisation que nécessaire.

52
MUG4N

Vous voudrez probablement regarder quelque chose comme RL Rewrite pour réécrire les URL en des adresses plus conviviales plutôt que d'utiliser un simple httpRedirect. Vous pourriez alors faire une règle comme ceci:

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Rewrite to Category">
        <match url="^Category/([_0-9a-z-]+)/([_0-9a-z-]+)" />
        <action type="Rewrite" url="category.aspx?cid={R:2}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
24
vcsjones