Ejemplos de patrones de expresiones regulares utilizados comúnmente para redirecciones con htaccess.
Las expresiones regulares son, digamos, un hueso duro de roer. Utilizan un lenguaje complicado que a veces se hace difícil de entender o de especificar. Por ello, es habitual que el desarrollador tenga ciertos problemas a la hora de crear sus patrones de expresiones regulares para utilizar en el .htaccess. A mi mismo me resultaba muchas veces complicado escribir las reglas, hasta que entendí un poco el lenguaje de expresiones regulares y creé una serie de reglas de uso común, que luego suelo reutilizar en mis archivos .htaccess.
En este artículo pienso proporcionar una serie de ejemplos de reglas htaccess, o de patrones de expresiones regulares que podemos utilizar en nuestras páginas web.
Sin más, empecemos dando los distintos ejemplos:
Ejemplo 1 de expresión regular para htaccess
RewriteRule ^resultados/pagina_pg([0-9]+).php resultados/index.php?&_pagi_pg=$1
Esta regla puede servir bien para paginadores, porque crearmos URLs amigables que tienen el número de la página de resultados que se desea ver. Esta regla redirige todo lo que sea como:
www.midominio.com/resultados/pagina_pg5.php
www.midominio.com/resultados/pagina_pg23.php
www.midominio.com/resultados/pagina_pg19992.php
… y cualquier otra combinación de números, con tantos dígitos como sea necesario.
A direcciones como estas:
www.midominio.com/resultados/index.php?&_pagi_pg=5
www.midominio.com/resultados/index.php?&_pagi_pg=23
www.midominio.com/resultados/index.php?&_pagi_pg=19992
Ejemplo 2 de expresión regular para htaccess
RewriteRule ^platos/letra_([a-z]).php$ codigo/platos_inicial.php?letra=$1
Esta regla htaccess es parecida a la anterior, sólo que en vez de números gestiona iniciales y además, como no tiene el signo "+", sólo acepta una letra.
Acepta URLs como estas:
www.midominio.com/platos/letra_a.php
www.midominio.com/platos/letra_x.php
Y redirige estas URLs a direcciones como estas:
www.midominio.com/codigo/platos_inicial.php?letra=a
www.midominio.com/codigo/platos_inicial.php?letra=x
Pero no acepta más de una letra en la inicial y sólo acepta minúsculas. Osea, estas direcciones no concordarían con el patrón de expresión regular:
www.midominio.com/platos/letra_xy.php
www.midominio.com/platos/letra_A.php
Ejemplo 3 de expresión regular para htaccess
RewriteRule ^platos/pais_([a-z_-]+).php$ codigo/platos_pais.php?nombre_pais=$1
Esta regla avanza un poco en la regla anterior, porque permite cualquier número de caracteres y además también acepta que se coloquen guiones bajos y medios.
Acepta URLs como estas:
www.midominio.com/platos/pais_a.php
www.midominio.com/platos/pais_abc.php
www.midominio.com/platos/pais_a-b_c.php
Estas direcciones las redireccionaría internamente a estas URL:
www.midominio.com/codigo/platos_pais.php?nombre_pais=a
www.midominio.com/codigo/platos_pais.php?nombre_pais=abc
www.midominio.com/codigo/platos_pais.php?nombre_pais=a-b_c
Esta regla no aceptaría nombres de países que tuvieran una mayúscula.
Usuarios que han visto este tema también han visto...
- Control de permisos en PHP con phpGACL
- Información Encriptada en la DB Oracle (PHP)
- Envio de formulario de contacto con PHP
- Covertir Números decimales a Romanos en PHP
- Comprobar si existe el dominio del correo en PHP
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.