0
votes

Règles de redirection ASP.net Web.Config

Je rencontre un problème avec cette redirection. J'essaie de rediriger en permanence la page de l'emplacement d'installation de chaque état vers la nouvelle. Ceci est un exemple et cela fonctionne très bien.

<rule name="locations redirect" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
    <add input="{HTTP_HOST}{REQUEST_URI}" pattern="installation-locations" />
  </conditions>
  <action type="Redirect" url="/locations/" redirectType="Permanent" />
</rule>

Maintenant, lorsque je dois rediriger la page principale des emplacements d'installation (ci-dessous), cela fonctionne, mais cette nouvelle règle de redirection remplace celle ci-dessus et celles pour tous les autres états.

<rule name="49 set wyoming/installation-locations 301 permanently moved" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
    <add input="{HTTP_HOST}{REQUEST_URI}" pattern="wyoming/installation-locations" />
  </conditions>
  <action type="Redirect" url="/locations/wy/" redirectType="Permanent" />
</rule>

Quelqu'un a-t-il des recommandations?


1 commentaires

Nous avons résolu ce problème en plaçant Response.Redirect ("/ locations"); script côté serveur directement sur la page.


3 Réponses :


0
votes

Essayez de configurer le modèle pour n'accepter rien d'autre avant les emplacements-d'installation de la règle de redirection d'emplacements .

<rule name="locations redirect" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
    <add input="{HTTP_HOST}{REQUEST_URI}" pattern="^(installation-locations)$" />
  </conditions>
  <action type="Redirect" url="/locations/" redirectType="Permanent" />
</rule>

Plus d'informations: https: // docs. microsoft.com/en-us/iis/extensions/url-rewrite-module/testing-rewrite-rule-patterns


0 commentaires

0
votes

Selon votre description, le moyen le plus simple de le résoudre est de modifier l'ordre des règles de réécriture d'url.

Puisque les emplacements d'installation peuvent également correspondre au modèle "wyoming / installation-locations", vous trouverez les emplacements de redirection règle est inutile.

Autant que je sache, la correspondance de règle de réécriture d'URL est une par une. Il utilisera la première règle, puis la deuxième, la troisième. Si la règle correspond à la première, elle ne correspondra pas à la seconde.

Je suggère que vous puissiez essayer d'utiliser la règle de réécriture d'URL ci-dessous, cela fonctionnera bien.

 <rule name="49 set wyoming/installation-locations 301 permanently moved" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
    <add input="{HTTP_HOST}{REQUEST_URI}" pattern="wyoming/installation-locations" />
  </conditions>
  <action type="Redirect" url="/locations/wy/" redirectType="Permanent" />
</rule>
  <rule name="locations redirect" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
    <add input="{HTTP_HOST}{REQUEST_URI}" pattern="installation-locations" />
  </conditions>
  <action type="Redirect" url="/locations/" redirectType="Permanent" />
</rule>


3 commentaires

J'ai déjà essayé de le faire et cela n'a pas fonctionné. Nous l'avons résolu différemment. Merci pour votre temps, Brando!


Je suis content que vous ayez résolu le problème. Pourriez-vous s'il vous plaît partager la solution et la marquer comme réponse? Cela aidera d'autres personnes confrontées au même problème.


Roger, Brando.



0
votes

Nous avons résolu ce problème en plaçant un script côté serveur dans le skin de la page.

if (DotNetNuke.Entities.Tabs.TabController.CurrentPage.TabName == "Installation Locations")
Response.Redirect("/locations");


0 commentaires