• Compartilhar
  • ?
  • Perfis ▼
  • Comunidades ▼
  • Aplicativos ▼

Blogs

  • Meus Blogs
  • Blogs Públicos
  • Minhas Atualizações

Essa comunidade pode ter membros de fora da organização. iMasters

  • Efetue login para participar
fd26864d-cb41-49cf-b719-d89c6b072893 Blog

▼ Marcações

▼ Entradas Semelhantes

The 6 Elements of Ef...

Blog: IBM Developer...
DiLabrien 50GMUKR3EQ
Atualizado
0 pessoas curtiram istoCurtir 0
Sem ComentáriosComentários 0

New zPET (2018) envi...

Blog: LCST/e z Plat...
dmjudka 310000M67D
Atualizado
2 pessoas curtiram istoCurtir 2
Sem ComentáriosComentários 0

The Salesforce/IBM P...

Blog: IBM Cloud For...
PhilipP. 310002RC19
Atualizado
0 pessoas curtiram istoCurtir 0
Sem ComentáriosComentários 0

What I find interest...

Blog: Bernie Michal...
bernie_michalik 1100004GGT
Atualizado
0 pessoas curtiram istoCurtir 0
Sem ComentáriosComentários 0

How Software can Hel...

Blog: platformiscri...
Platformiscript 50K44EKHY1
Atualizado
0 pessoas curtiram istoCurtir 0
Sem ComentáriosComentários 0

▼ Archive

  • janeiro de 2014
  • agosto de 2013
  • julho de 2013
  • maio de 2013
  • abril de 2013
  • março de 2013
  • fevereiro de 2013
  • janeiro de 2013
  • dezembro de 2012
  • novembro de 2012
  • outubro de 2012
  • setembro de 2012
  • agosto de 2012
  • julho de 2012
  • junho de 2012
  • maio de 2012
  • abril de 2012
  • março de 2012
  • fevereiro de 2012
  • janeiro de 2012
  • dezembro de 2011
  • novembro de 2011
  • outubro de 2011
  • setembro de 2011
  • agosto de 2011
  • julho de 2011
  • junho de 2011
  • maio de 2011
  • abril de 2011
  • março de 2011
  • fevereiro de 2011
  • janeiro de 2011
  • dezembro de 2010
  • novembro de 2010
  • outubro de 2010
  • setembro de 2010
  • agosto de 2010
  • julho de 2010
  • abril de 2010

▼ Autores do Blog

iMasters

Visualizar Todas as Entradas
Clicar no botão faz uma atualização completa da página. O usuário pode acessar a região "Lista de Entrada" para visualizar o novo conteúdo.) Lista de Entrada

Reescrevendo URL e escondendo extensão

iMasters 27000343BF | | Marcações:  desenvolvimento software ‎ | 4.745 Visualizações

Caro leitor, no artigo de hoje eu vou mostrar como reescrever a URL do seu site e como esconder a extensão do arquivo. Essa forma de reescrever URL funciona no IIS 7.0, diferente do IIS 6.0.

Os links acima podem te ajudar a indexar melhor o seu site e os seus artigos:

  • A mágica do ResolveURL
  • URL Routing com Visual Studio .NET 2010
  • URL Indexavel – Reescrever URL de uma forma amigável

O grande problema hoje em dia é que os servidores foram migrados para a versão IIS 7.0 e com essa versão, do IIS, o processamento de URL ficou diferente. Para isso, seria bom reescrever o processamento. Ficou bem mais simples do que era antes no IIS 6.0.

Estou utilizando a ferramenta Visual Studio 2012. Podem ser utilizadas as versões anteriores sem qualquer problema.


Figura 1 –Visual Studio 2012

A ferramenta lançada pela Microsoft está preparada para o uso de HTML5 e desenvolvimento para tablet Surface.

O primeiro passo para reescrever a URL de forma mais amigável e escondendo a extensão do arquivo é criar um projeto do tipo “web”. Basta clicar no link chamado New Project descrito na tela inicial da ferramenta.


Figura 2 – Novo projeto

Depois de clicar no link, outra tela aparece para que escolha o tipo do projeto. Como este documento fala de URL, o tipo de projeto que precisa ser criado é o “web” Agora você pode criar um projeto do tipo vazio – antes não tinha essa possibilidade.


Figura 3 – Escolhendo projeto

Do lado esquerdo da tela você escolhe a linguagem de programação e do lado direito, o tipo de projeto ou template. O projeto que escolhi foi o ASP.NET Empty Web Application. É o que está exatamente selecionado na figura 3.

O projeto foi criado bem vazio. Tenho que adicionar os arquivos, como o Global.asax e o default.aspx. Para adicionar os arquivos, basta clicar com o botão direito em cima do projeto, selecionar o menu Add e depois o sub-menu New Item:


Figura 4 – Adicionando nova página

Basta colocar o nome e clicar no botão Add.

É necessário colocar três linhas de código dentro do arquivo Web.config. Estas linhas fazem com que a extensão não precise ser mostrada. Por exemplo: http://www.seusite.com/artigo/titulo

  • Listagem 1 – Linhas de comando no web.config.
  • Listagem 2 – Todo o web.config: a listagem 2 mostra como está o arquivo todo de web.config.

O próximo passo depois de alterar o arquivo web.config é criar um arquivo Global.asax. É o mesmo procedimento mostrado na figura 4. Depois de criado, é necessário alterar um método vazio chamado Application_BeginRequest. Esse método é executado a cada requisição no servidor; isto é, toda requisição passa por este método.

  • Listagem 3 – Criando método Application_BeginRequest
protected void Application_BeginRequest(object sender, EventArgs e)
{
Match m = Regex.Match(Request.Url.LocalPath, @"^/blog/(?.*)/(?\d{4})/(?\d{2})/(?\d{2})/(?.*)/?$");

if (m.Success)
{
Context.Items["Title"] = m.Groups["title"].Value;
Context.Items["Year"] = m.Groups["year"].Value;
Context.Items["Month"] = m.Groups["month"].Value;
Context.Items["Day"] = m.Groups["day"].Value;
Context.Items["Assunto"] = m.Groups["assunto"].Value;

HttpContext.Current.RewritePath("/default.aspx?id=" + Context.Items["Day"].ToString() + "&titulo=" + Context
.Items["Title"].ToString() + "&assunto=" + Context.Items["Assunto"].ToString());
}
}

A primeira linha do método começa usando o Regex.Match – isto quer que você precisa importar a classe System.Text. Ele pega a URL e verifica a existência do site, mais os outros parâmetros como assunto, ano, mês, dia e título.

O mesmo nome que você coloca no math é o nome que pode pegar nos grupos, mostrado acima, na listagem 3.

Note que o ano possui o \d{4}, isso quer dizer que precisa ter passado quatro caracteres para o campo ano. Quando você não precisar identificar a quantidade de caracteres, basta usar o ponto e asterisco, como mostrado no assunto e title.

Se a URL for bem sucedida, quero dizer, se existir estes parâmetros, o programa pega o grupo de cada uma e armazenar na variável de contexto. Para finalizar, ele usa o rewritePath indicando a página e os parâmetros necessários para serem passados. Se não for passada a URL de acordo com o que ele está esperando, ele não vai usar esse redirecionamento.

Note que no RewritePath estou passando parâmetros para a página default.aspx. Esses parâmetros eu posso pegar com request.params. No load da página default.aspx eu coloquei isto.

  • Listagem 4 – Load da página
protected void Page_Load(object sender, EventArgs e)
{

if (Request.Params["Titulo"] != null)
{
Response.Write("
Titulo: " + Request.Params["Titulo"].ToString());
Response.Write("
Id: " + Request.Params["id"].ToString());
Response.Write("
Assunto: " + Request.Params["Assunto"].ToString());
}
}

Quando a página inicial for passada, mas nenhum parâmetro for, ela não mostra nada:


Figura 5 – Página sem nada

Quando coloco os parâmetros obedecendo ao que foi programado, aparecem os dados retirados da tela:


Figura 6 – Passando os parâmetros

O que é mais interessante ainda é que você pode colocar a extensão que quiser. O IIS vai entender e redirecionar de forma correta, figura 7. Veja que coloquei a extensão .bing no final da URL.


Figura 7 – Mudando a extensão para .bing.

Espero que tenha gostado desse exemplo simples, mas que funciona bem para quando estiver desenvolvendo um site, blog ou sistema. Qualquer dúvida, deixe seu comentário.

Fonte: Improve DK

 
***
Artigo de Mauricio Junior

  • Incluir um Comentário Incluir um Comentário
  • Editar
  • Mais Ações v
  • Colocar esta Entrada em Quarentena
Notificar Outras Pessoas
notification_ex

Enviar Notificação por Email

Colocar esta entrada em quarentena

deleteEntry
duplicateEntry

Marcar como Duplicata

  • Entrada Anterior
  • Principal
  • Próxima Entrada
Feed para Entradas de Blog | Feed para Comentários de Blog | Feed para Comentários desta Entrada