Caractere $ para finalizar os padrões de redirecionamento com .htaccess

Utilizando em .htaccess o símbolo $ ao final de um padrão indicamos que a URL deve acabar nesse ponto.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 20/5/08
Valorize este artigo:
Continuando com os comentários e conselhos do manual de .htaccess, há que comentar o uso do caractere $ nos padrões, para especificar o final de uma URL.

Para explicá-lo melhor vamos ver um exemplo.

Vejamos esta regra de .htaccess

RewriteRule ^artigos/(.+)\.html codigo/mostra_artigo_htaccess.php?id=$1

Esta regra diz que todas as URL como estas:

www.dominio.com/artigos/x.html
www.dominio.com/artigos/yyy.html

Serão processadas com o arquivo:

www.dominio.com/codigo/mostra_artigo_htaccess.php?id=x
www.dominio.com/codigo/mostra_artigo_htaccess.php?id=y

Porém, a coisa é que este padrão de htaccess também casa com outras url como estas:

www.dominio.com/artigos/x.htmlkk
www.dominio.com/artigos/x.html-oquefor

Isto é porque o padrão coincide, porque corresponde com a regra. Ou seja, a regra diz que começa a URL de depois do domínio por "artigos/" + qualquer conjunto de caracteres + ".html".

Teríamos que especificar de alguma forma que a URL deve terminar em ".html" e nada mais e para isso podemos utilizar "$" ao final da regra.

Agora esta outra regra .htaccess mais completa

RewriteRule ^artigos/(.+)\.html$ codigo/mostra_artigo_htaccess.php?id=$1

Neste caso indicamos com o "$" depois de \.html que a URL deve finalizar aí.

Algo como isto sim que concordaria a regra htaccess:

www.dominio.com/artigos/algo.html

Porém, isto não se processaria pelo .htaccess, porque não acaba em .html:
www.dominio.com/artigos/algo.htmlkk






Usuários :    login / registro
Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato