Вопрос

Я добавил 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, чтобы получить желаемую функциональность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top