Как преобразовать ASP.NET URL без маршрутизации URL или перезаписи URL? - PullRequest
0 голосов
/ 14 января 2010

Я использую ASP.NET 2.0 на IIS6, поэтому я не могу использовать system.web.routing. Я пробовал несколько переписывателей URL, но ни один из них не делал то, что хотел.

Мне нужно преобразовать (прочитать / проанализировать, а затем перенаправить) URL 1 в 2 с минимальной конфигурацией IIS, потому что я не не имеет полных прав для перенастройки веб-серверов (например, ISAP на IIS6 или для установки сторонних расширений / библиотек). И я не могу преобразовать URL в 3 , потому что все физические ссылки будут разорваны.

  1. http://www.url.com/abc123
  2. http://www.url.com/default.aspx?code=abc123
  3. http://www.url.com/abc123/default.aspx?code=abc123

Спасибо!

Ответы [ 3 ]

1 голос
/ 14 января 2010

Создать обработчик ошибок 404, например, 404.aspx. На этой странице проанализируйте URL-адрес запроса и извлеките код, используя Request.Path. Затем перенаправьте на default.aspx? Code = abc123.

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

0 голосов
/ 14 января 2010
protected void Page_Load(object sender, EventArgs e)
{
    HtmlLink canonicalTag = new HtmlLink();
    canonicalTag.Href = "http://www.url.com/default.aspx";
    canonicalTag.Attributes["rel"] = "canonical";
    Page.Header.Controls.Add(canonicalTag);
}

http://codersbarn.com/post/2009/02/21/ASPNET-SEO-and-the-Canonical-Tag.aspx

0 голосов
/ 14 января 2010

Я бы посоветовал вам взглянуть на использование пользовательского преобразования с UrlRewriter.net. Эта ссылка подробно описывает, как это можно сделать с помощью сборки Intelligencia.UrlRewriter (примерно 3/4 пути вниз по странице). Надеюсь, это достаточно хорошо, чтобы делать то, что вам нужно.

...