Utilizando en .htaccess el símbolo $ al final de un patrón indicamos que la URL debe acabar en ese punto.
Siguiendo con los comentarios y consejos del manual de .htaccess, hay que comentar el uso del carácter $ en los patrones, para especificar el final de una URL.
Para explicarlo mejor vamos a ver un ejemplo.
Veamos esta regla de .htaccess
RewriteRule ^articulos/(.+)\.html codigo/muestra_articulo_htaccess.php?id=$1
Esta regla dice que todas las URL como estas:
www.dominio.com/articulos/x.html
www.dominio.com/articulos/yyy.html
Serán procesadas con el archivo:
www.dominio.com/codigo/muestra_articulo_htaccess.php?id=x
www.dominio.com/codigo/muestra_articulo_htaccess.php?id=y
Pero el tema es que este patrón de htaccess también casa con otras url como estas:
www.dominio.com/articulos/x.htmlkk
www.dominio.com/articulos/x.html-loquesea
Esto es porque el patrón coincide, porque corresponde con la regla. Es decir la regla dice que empieza la URL de después del dominio por "articulos/" + cualquier conjunto de caracteres + ".html".
Tendríamos que especificar de alguna forma que la URL debe terminar en ".html" y nada más y para eso podemos utilizar "$" al final de la regla.
Ahora esta otra regla .htaccess más completa
RewriteRule ^articulos/(.+)\.html$ codigo/muestra_articulo_htaccess.php?id=$1
En este caso hemos indicado con el "$" después de \.html que la URL debe finalizar ahí.
Algo como esto sí que concordaría la regla htaccess:
www.dominio.com/articulos/algo.html
Pero esto no se procesaría por el .htaccess, porque no acaba en .html:
www.dominio.com/articulos/algo.htmlkk
Para explicarlo mejor vamos a ver un ejemplo.
Veamos esta regla de .htaccess
RewriteRule ^articulos/(.+)\.html codigo/muestra_articulo_htaccess.php?id=$1
Esta regla dice que todas las URL como estas:
www.dominio.com/articulos/x.html
www.dominio.com/articulos/yyy.html
Serán procesadas con el archivo:
www.dominio.com/codigo/muestra_articulo_htaccess.php?id=x
www.dominio.com/codigo/muestra_articulo_htaccess.php?id=y
Pero el tema es que este patrón de htaccess también casa con otras url como estas:
www.dominio.com/articulos/x.htmlkk
www.dominio.com/articulos/x.html-loquesea
Esto es porque el patrón coincide, porque corresponde con la regla. Es decir la regla dice que empieza la URL de después del dominio por "articulos/" + cualquier conjunto de caracteres + ".html".
Tendríamos que especificar de alguna forma que la URL debe terminar en ".html" y nada más y para eso podemos utilizar "$" al final de la regla.
Ahora esta otra regla .htaccess más completa
RewriteRule ^articulos/(.+)\.html$ codigo/muestra_articulo_htaccess.php?id=$1
En este caso hemos indicado con el "$" después de \.html que la URL debe finalizar ahí.
Algo como esto sí que concordaría la regla htaccess:
www.dominio.com/articulos/algo.html
Pero esto no se procesaría por el .htaccess, porque no acaba en .html:
www.dominio.com/articulos/algo.htmlkk
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...