Сохраняйте старые URL-адреса при реализации UrlRewriter.net
-
18-09-2019 - |
Вопрос
Я добавил UrlRewriter.net на свой сайт сегодня, и он отлично работает с перенаправлением моих SEO-ссылок на реальные страницы.Вопрос в том, есть ли какой-либо способ сохранить мои старые ссылки на сайте и использовать ResolveUrl(), используя правила для вывода ссылок на моей странице."Старые" ссылки никогда не должны просматриваться ни поисковыми ботами, ни пользователями.
Пример ссылки на странице:
<a href="<%= ResolveUrl("~/Help.aspx") %>">Help</a>
Я добавил подобный код перезаписи в web.config:
<rewrite url="~/help" to="~/help.aspx" />
<rewrite url="~/help/(.+)" to="~/help.aspx?section=$1" />
Во-первых, было бы здорово, чтобы ссылки отображались без какой-либо дополнительной работы, как в MVC.Второй лучший вариант - если есть хороший способ просто добавить правила для "другого способа" также в список перезаписи.
Это также позволило бы мне легко отключать / включать перенаправление при отладке.
Решение
ОК.Вместо этого я внедрил технологию маршрутизации, используемую в маршрутизации MVC, в моем web.forms, что позволило мне использовать приведенный ниже код:
ASPX:
<%= Url.RouteUrl("article", new { name="my-name-for-artcile"}) %>
И зарегистрируйте все маршруты в одном месте, например:
routes.MapWebFormRoute("articles", "artiklar", "~/articles.aspx");
Я использовал код Фил Хаак сделано около Маршрутизация веб-формы но немного изменил его, чтобы заставить его работать с главными страницами, а также добавил настройки som web.config, чтобы он бесперебойно работал на сервере с URL-адресами, отличными от aspx.
http://blog.joakimfischer.se/post/2009/11/08/Web-Form-Routing.aspx
Теперь это работает так, как задумано, но я прекратил использовать UrlRewriter.net, чтобы получить желаемую функциональность.