Sunt blocat pe o regulă de rescriere IIS foarte simplă. Am o serie de link-uri care au o cale nevalidă și trebuie să redirecționez toate solicitările către acea cale către una nouă.
Iată calea ruptă: https://documentation.buzsoftware.com/buzdocs/BuzClubManager/index.cfm?ID=690
Porțiunea „buzdocs” a căii nu mai există și toate linkurile de sub această cale au fost mutate în sus cu un folder în această cale exemplu (care funcționează): https://documentation.buzsoftware.com/BuzClubManager/index.cfm?ID=690
<rule name="buzdocs_path_del" stopProcessing="true">
<match url="(.*)/buzdocs(.*)" />
<action type="Rewrite" url="{R:1}{R:2}" appendQueryString="false" />
</rule>
sau
<rule name="buzdocs_path_del" stopProcessing="true">
<match url="https://documentation.buzsoftware.com/buzdocs(.*)" />
<action type="Rewrite" url="https://documentation.buzsoftware.com/{R:1}" appendQueryString="false" />
</rule>
Am încercat o mare varietate de modele regex și de fiecare dată când merg pe calea incorectă primesc un 404 și nu sunt redirecționat.
Nu sunt sigur dacă trebuie să folosesc ^ (începutul liniei) sau $ (sfârșitul liniei) în potrivirea modelului, le-am încercat pe ambele cu același rezultat.
Folosind numai {R:1} (primul exemplu) vs. folosirea ambelor {R:1} și {R:2} (al doilea exemplu), nu sunt sigur care este calea corectă. Orice comentariu despre cele mai bune practici ar fi de ajutor.
De asemenea, am sărit înainte și înapoi între <action type="Rescrie"
și <action type="Redirecționare"
, fără nicio modificare.
Aceste link-uri sunt către un site live, nu ezitați să le accesați. Mulțumesc pentru orice sfat, sunt destul de sigur că îmi lipsește ceva mic și probabil că mă voi bate cu capul de birou pentru asta.