Hola a todos
estoy usando este rewrite rule para un sitio web.
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?([^/]+)/?([^/]+)?$ index.php?language=$1&page_url=$2&ref_id=$3 [L,QSA]
</ifmodule>
Donde una ruta de ejemplo seria: www.dominio.com/es/proyectos/ficha_proyecto
Otra seria: www.dominio.com/en/blog
Las 3 variables que recojo son idioma, seccion y id_articulo. Las dos ultimas son opcionales, si bien la primera (el idioma) siempre se pasa.
La rewrite_rule me funciona bien cuando tendo dos variables (idioma y seccion) o tres variables en la url (idioma, seccio e id).
Pero si solo paso una, como por ejemplo: www.dominio.com/es/
que serviria para ir a la home del idioma deseado, me pasa la variable mal.
El problema es que se come la ultima letra.
Es decir si paso estas rutas :
www.dominio.com/es/proyectos/proyecto1 las variables que me recoge son: $language="es" , $page_url="proyectos" , $ref_id="proyecto1" --> correcto
www.dominio.com/es/proyectos/ las variables que me recoge son: $language="es" y $page_url="proyectos" --> correcto
Si paso esta otra ruta:
www.dominio.com/es/ las variables que me recoge son: $language="e"
y si paso esta tambien :
www.dominio.com/es las variables que me recoge son: $language="e"
Es decir, borra la ultima letra de la primera variable.
Supongo que es un error en el htacces, por lo que necesitaria vuestra ayuda para resolverlo.
MuchasGracias!