Pergunta

Eu queria saber se existe uma solução usando o IIS6 para um aplicativo para livrar-se do padrão.aspx texto na url.assim, por exemplo, se um usuário acessa:

www.website.com/default.aspx

o navegador somente mostra:

www.website.com/

Não importa o que.É só para SEO.

Eu já uso UrlRewriting.NET para algumas regravações no meu aplicativo, mas eu não sou tão inteligente para criar uma regra para isso.

Qualquer ajuda é muito aprecio.

Obrigado.Jose

Foi útil?

Solução

Se você tem algo para fazer a reescrita de URL, tudo o que você precisa para garantir que seus links apontem para o URL correto.

Se você não corrigir seus links, cabe ao navegador decidir se deseja exibir o link real solicitado.

Se você realmente gostaria de fazer um trabalho desonesto, pode usar algum JavaScript para fazer a barra de endereços do navegador exibir o que quiser, mesmo que seja inválido.

Outras dicas

Eu acho que Scottgu já tem o tópico de reescrita no ASP.NET coberto: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-sen.aspx.

Ele cobre coisas como:

  • Reescrevendo usando urlrewriter.net, reescrita ISAPI
  • Truques do ASP.NET, postando de volta (atingindo a versão amigável do URL)

Com o seu problema, acho que você precisa usar uma combinação de, nunca vinculando a 'padrão.aspx', ou seja. Apenas link para '/'. Em seguida, use o arquivo do navegador de postagem do Scott para garantir que os postagens sempre atinjam a mesma versão amigável do URL.

Redirecionar 'default.aspx' para '/', que então é servido por 'default.aspx' soa como uma receita para o desastre para mim. Basta corrigir seus links para garantir que você nunca acabe em 'padrão.aspx' explicitamente.

Eu acho que a maneira mais simples de alterar o índice de resultados de pesquisa (supondo que ele saiba sobre o HTTP 301) é escrever um pouco de função no seu padrão.

void Page_Load(...) {

    if(Request.Path.EndsWith("default.aspx", true/*case-insensitive*/, null)) {
       Response.StatusCode = 301;
       Response.StatusDescription = "Moved Permanently";
       Response.Headers.Add("Location", "/");
       HttpContext.Current.ApplicationInstance.CompleteRequest(); // end the request
    }

    // do normal stuff here
}

Se o padrão.aspx é definido como o documento padrão para servir no IIS e todos os seus interno links de site contêm URL sem o padrão.aspx, então eu acho que deve fazer o truque.

Embora o usuário ainda pode digitar padrão.aspx, spiders de mecanismos de pesquisa deve apenas pegar o mais amigável URL do seu link href atributos.

A maneira como eu faria é usar o application_beginRequest na classe pública global: system.web.httpApplicação e verificar o httpcontext.current.request.url para default.aspx e, em seguida isto.

A desvantagem é ter um redirecionamento nem sempre é tão bom e isso não vai funcionar se você estiver postando dados para essa página padrão.aspx. Mas você não pode simplesmente enganar o navegador a mostrar um URL diferente, embora você possa dizer ao ASP.NET para servir qualquer página que desejar para qualquer solicitação.

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