Pergunta

Temos um website; que, até agora tinha apenas páginas HTML. Agora estamos reconstruindo-lo em ASP .Net.

Isto significa que todas as páginas .html será alterado para extensão.ASPX. O problema é que há um monte de referências externas a essas páginas, e nós não queremos ir e chage cada link para aspx imediatamente.

Existe alguma maneira de redirecionar um link para páginas .html para páginas.aspx? Por exemplo, existe alguma maneira que o servidor verifica o arquivo especificado, descobre que ele se vincula à página .html e automaticamente abre a página aspx?

Foi útil?

Solução

Se você fazer algum tipo de reescrita de URL você pode ter todos os links permanecer o mesmo e apenas servir as páginas aspx, pedido de index.html é mapeado para index.aspx

aqui está o que ms diz sobre asp.net url reescrita:

http://msdn.microsoft.com/en-us/library /ms972974.aspx

Outras dicas

Gostaria de aproveitar esta oportunidade para deixar extensões (.html, aspx, etc) para trás.

Para todos os nossos grandes sites agora usamos um sistema de mapeamento personalizado, em que uma página virtual URI é mapeado para um .aspx específico (or.html) página. Isto tem algumas vantagens:

  • Seus visitantes ver "Buscamos" URIs;
  • Você é livre para re-organizar o seu site como você vê o ajuste, nos bastidores, sem quebrar ligações recebidas existentes;
  • Você pode usar URIs virtuais dinâmicos, por exemplo, em vez de /Product.aspx?p=Blah, você pode usar / Produtos / Blah

Temos o nosso próprio sistema personalizado, mas acredito que ASP.NET MVC agora tem esse recurso embutido.

(Se você enveredar por este caminho, você pode adicionar mapeamentos legados para URIs .html que apontam para seus novos páginas.ASPX).

Você pode querer olhar para o namespace ASP.NET System.Web.Routing, que foi adicionada no .NET 3.5 SP1 eu acredito:

http://blogs.msdn.com/mikeormond/archive/2008/05/14/using-asp-net-routing-independent-of-mvc.aspx

http://msdn.microsoft.com/en -us / library / system.web.routing.aspx

Veja como lidamos com uma situação semelhante.

  1. Configuração IIS para mapear a extensão html para ASP.Net em vez de lidar com ele diretamente.

  2. No HttpApplication.BeginRequest manipulador ver se a solicitação está sendo feita para um arquivo HTML que foi migrado para aspx se assim for, então, servir para a página aspx não por redirecionando a resposta.

  3. No caso do html fiile não foi mapeado, mas apenas a cumprir o arquivo HTML estático.

Como stusmith tocou, você não deve deixar sua tecnologia subjacente ser exposto (e certamente não obriga) que seus URIs parecer. A melhor maneira é como mencionado para não mostrar todas as extensões em tudo, mas na atual situação talvez seja possível configurar o sistema de tal forma que os arquivos .html são postas em prática como se fossem aspx?

Eu não sei a primeira coisa sobre .NET mas presumo que isso é possível, sem ter que passar por muitas aros.

O segundo melhor abordagem é reescrever as URIs, mas que exige um trabalho extra para o servidor (não muito, mas acrescenta-se).

(Não redirecionar com uma atualização meta. Cada outra solução é melhor.)

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