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.
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.
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>