Pergunta

Gostaria que o meu site para criar links motor de busca otimizados para o conteúdo dinâmico (em vez de localizar dados através da querystring). Assim:

mysite/SomeModifiableNname.aspx
em vez de

mysite/DynamicContent.aspx?entryID=2345
.

Além de um 404 manipulador inteligente que redireciona as solicitações, ou um costume mime-type manipulador no IIS, existe uma boa solução para isso em ASP.NET?
Tendo em mente que o nome do arquivo página deve ser capaz de ser alterado em tempo de execução.

Foi útil?

Solução 4

Obrigado por pensamentos de todos. Com as informações fornecidas, me deparei com o que eu penso é a necessidade solução I:

No Global.asax (ou através de um HttpModule), ouvir o evento BeginRequest e aplicar caminho Context.Rewrite lá:

void Application_BeginRequest(object sender, EventArgs e)
{
    string fullOrigionalpath = Request.Url.ToString();

    if (fullOrigionalpath.ToLower().Contains("/Games".ToLower()))
    {
        Context.RewritePath("Default.aspx?id=Games");
    }

}

E, em seguida, no método OnPreInit da página que irá lidar com essas solicitações, necessidades de caminho de reconfiguração a ser aplicada novamente para que postagens irá funcionar apropriadamente:

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);

    if (Request.QueryString["id"] == null)
        return;
    if (Request.QueryString["id"].ToLower().Equals("games"))
        Context.RewritePath("Games", "", "id=Games");
}

A chave que faz este trabalho melhor do que um monte de módulos de URL-reescrita me deparei é que os caminhos podem ser dinâmicos. Ou seja, os URLs criados podem ser orientado a dados.

Outras dicas

Você pode usar um HttpHandler rel , como visto aqui .

este é um tema amplo geralmente referidos como URL reescrita ...

existem várias maneiras de conseguir isso. Eu sugeriria olhar para o módulo Rewrite IIS.

Você provavelmente deve também investigar a URL roteamento capabalities que foram desenvolvidos para MVC e estão disponíveis no ASP.NET 3.51

UPDATE: Eu gostaria de saber mais sobre suas intenções. Essa última frase me confunde.

Eu fiz isso no passado com UrlRewrite.Net. Há também um construído em facilidade para isso em IIS7

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top