Использование модуля перезаписи URL-адресов IIS вместо Global.asax для сложных правил перенаправления


У нас есть наследие ASP.NET веб-сайт, на котором сложные правила перенаправления закодированы в Global.asax. На самом деле эта логика обрабатывает запросы с несколькими необязательными или переменными частями, такими как

{http|https}://[www.]ourdomain.com/[Home/]Products/old-product-name/page.aspx

И перенаправляет их на

https://ourdomain.com/new-product-name/

Теоретически эту логику можно переписать с помощью набора правил для модуля перезаписи URL-адресов IIS. Я рассматриваю этот подход по двум причинам. Во-первых, это должно упростить логику перенаправления, поскольку она будет записана в виде набор декларативных правил. Во-вторых, нам нужно добавлять все больше и больше правил перенаправления, и это будет проще сделать в формате правил перезаписи URL.

Вопрос: имеет ли смысл переписывать нашу логику перенаправления с помощью модуля перезаписи URL? Может ли это привести к снижению производительности и тому подобному? Или, может быть, лучший способ сделать то, что нам нужно, - это использовать Global.asax вместе с правилами перезаписи URL, кодируя сложные правила в Global.asax и используя перезапись URL для простых перенаправлений?

Author: TecMan, 2019-08-06

1 answers

До тех пор, пока ваши правила могут быть выражены в виде регулярных выражений для путей в сочетании с условиями, связанными с заголовками, переменными сервера и т.д. они могут быть переписаны как правила перезаписи URL-адресов. Очевидно, что у вас не может быть никаких конкретных данных приложения, связанных с правилами (они должны быть включены в ваше приложение, возможно, в файл global.asax или в HttpModule.

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

 0
Author: jalarcon, 2019-08-07 07:31:05