Más ejemplos de reglas .htaccess

  • Por
Otra serie de ejemplos de reglas htaccess que pueden servir para crear fácilmente nuestros patrones de expresiones regulares.
En el artículo anterior estuvimos dando una serie de ejemplos para la creación de expresiones regulares que podemos utilizar en archivos .htaccess. Vimos una serie de patrones simples y ahora vamos a seguir mostrando otros patrones, también sencillos, pero un poco más elaborados.

Antes que nada, deberíamos leer el artículo anterior, si es que no lo hemos hecho ya: Patrones de expresiones regulares para htaccess.

Ejemplo 4 de regla htaccess

RewriteRule ^platos/pais_([a-zA-Z_-]+)\.php$ codigo/platos_pais.php?nombre_pais=$1

Esta regla es similar a la anterior, pero ahora sí que estamos aceptando que algunos caracteres del nombre del país vengan en mayúsculas. Por ejemplo, acepta estas URLs:

www.midominio.com/platos/pais_Espana.php
www.midominio.com/platos/pais_Reino-Unido.php

Que redirigiría a URLs como estas:

www.midominio.com/codigo/platos_pais.php?nombre_pais=Espana
www.midominio.com/codigo/platos_pais.php?nombre_pais=Reino-Unido

Ejemplo 5 de regla htaccess

RewriteRule ^platos/nombre_([a-zA-Z0-9_-]+)\.php$ codigo/platos_nombre.php?nombre=$1

Esta regla .htaccess complica todavía un poco más la regla anterior, con la posibilidad que también se pongan números en la expresión.

Redigirirá URLs como estas:

www.midominio.com/platos/nombre_paella.php
www.midominio.com/platos/nombre_PAELLA_2.php
www.midominio.com/platos/nombre_paella-mariscos.php
www.midominio.com/platos/nombre_Arroz3Delicias.php

Que enviará internamente el procesamiento de esas páginas a estas direcciones:

www.midominio.com/codigo/platos_nombre.php?nombre=paella
www.midominio.com/codigo/platos_nombre.php?nombre=PAELLA_2
www.midominio.com/codigo/platos_nombre.php?nombre=paella-mariscos
www.midominio.com/codigo/platos_nombre.php?nombre=Arroz3Delicias

Ejemplo 6 de regla htaccess

Este esquema visto en el anterior ejemplo lo podemos repetir las veces que queramos en URLs que tengan una serie de directorios, separados por barras. Será algo como esto:

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)\.html$ codigo/mascodigo/procesamiento.php?parametro1=$1¶metro2=$2¶metro3=$3

Esto acepta direcciones que tengan tres directorios distintos, uno detrás de otro, separado claro está por las barras. Los nombres de los directorios aceptan números, letras mayúsculas y minúsculas y guiones medios y bajos.

Acepta direcciones tan variadas como estas:

www.midominio.com/1/2/3.html
www.midominio.com/loquesea/OTRACOSA/122.html
www.midominio.com/a_b_c_1/A-B-C-2/A-b_C_987.html

Internamente, htaccess procesará esas reglas y redirigirá a url como estas:

www.midominio.com/codigo/mascodigo/procesamiento.php?parametro1=1&parametro2=2&parametro3=3
www.midominio.com/codigo/mascodigo/procesamiento.php?parametro1=loquesea&parametro2=OTRACOSA&parametro3=122
www.midominio.com/codigo/mascodigo/procesamiento.php?parametro1=a_b_c_1&parametro2=A-B-C-2&parametro3=A-b_C_987

Autor

Miguel Angel Álvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

rchumpitazl

27/7/2010
Gracias por el articulo.
Bueno ya lei todo el articulo, he aprendido mucho.... ahora lo voy a utilizar en mi proyecto.. espero algun dia tener una pagina como el de ustedes... les deseo mucha suerte... Atentamente Edinson Ricardo.

portuhermana

29/7/2010
por favor una ayuda
hola amigos por favor quisiera que me ayuden tengo esta direccion

index.php?lagc=Noticias_Lagc:[noticias]:que-es-la-web-20

como podria poner para que me funcione algo asi

noticias/que-es-la-web-20/

por favor quisiera una ayuda. muhcas gracias.

Night_Design

05/5/2011
duda
yo quería preguntar una cosita simple, yo tengo un script que hice y en el htaccess hice para que funcione asi RewriteRule ^ver/(.+)$ index.php?ver=$1 y quiero saber como hacer para que redireccione a la url amigable cuando vas a index.php?ver=(opcion)