Переписать и перенаправить в asp.net переписать правила - PullRequest
0 голосов
/ 15 октября 2019

Я действительно изо всех сил пытаюсь понять правила перезаписи и почему мои не делают так, как я ожидал.

У меня есть 2 правила, и в основном мне нужно добиться того, чтобы он выбирал мой красивый URL-адрес независимо от подкаталога и затем перенаправлял в определенную папку. Затем он будет использовать идентификатор, который указан в симпатичном URL, чтобы затем попасть на соответствующую страницу в моем решении.

Итак, это правило должно иметь возможность захватывать все, что находится перед красивым URL, а затем перенаправлять в папку / gen1 / из корневого каталога.

<rule name="PokemonGen1Rule 1">
    <match url="^gen1-[\w-]*[^?]*-pkmid([\d]+)\.html" ignoreCase="true" />
    <action type="Redirect" url="^/gen1/{R:0}" />
</rule>

Затем это правило должно перехватывать URL-адрес при попадании в папку gen1 и использовать идентификатор, содержащийся в симпатичном URL-адресе, для передачи его в качестве параметра на страницу pokemon.aspx.

<rule name="PokemonGen1Rule 2">
    <match url="^gen1/gen1-[\w-]*[^?]*-pkmid([\d]+)\.html" ignoreCase="true" />
    <action type="Rewrite" url="/gen1/pokemon.aspx?pkmid={R:1}" 
    appendQueryString="false" logRewrittenUrl="true" />
</rule>

Это не работает, но в моем мозгу я не могу понять, что сломалось. Я пробовал различные комбинации для установки шевронов, и еще много чего.

Любые предложения будут с благодарностью.

1 Ответ

0 голосов
/ 16 октября 2019
<rule name="PokemonGen1Rule 1" stopProcessing="true">
    <match url="[\w-]*[^?]*/(gen1-[\w-]*[^?]*-pkmid([\d]+)\.html)" 
    ignoreCase="true" />
       <conditions>
         <add input="{REQUEST_URI}" negate="true" 
           pattern="/gen1/gen1-[\w-]*[^?]*-pkmid([\d]+)\.html" 
           ignoreCase="true" />
       </conditions>
   <action type="Redirect" url="/gen1/{R:1}" />
</rule>
<rule name="PokemonGen1Rule 2" stopProcessing="true">
    <match url="[\w-]*[^?]*/gen1-[\w-]*[^?]*-pkmid([\d]+)\.html" 
    ignoreCase="true" />
     <action type="Rewrite" url="/gen1/pokemon.aspx?pkmid={R:1}" 
     appendQueryString="false" logRewrittenUrl="true" />
</rule>

Решено!

...