En casi todos los sitios actuales, el mod_rewrite está presente para armar las URLs «amigables» o «SEO Friendly»
Pero cuando tenemos URLs traducidas por alguna rule de mod_rewrite y queremos adicionarle a esta algun parametro del tipo query string, este no es propagado al archivo destino (servelet)
Ejemplo:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^leagues\/([^\/]+)\/?$ index_leagues.php?sport=$1
Funciona perfectamente redirigiendo cualquier URL http://midominio.com/leagues/basketball a index_leagues.php?sport=basketball
Sin embargo, si yo quiero pasarle a http://midominio.com/leagues/basketball el parametro adicional, league_id de esta manera: http://midominio.com/leagues/basketball?league_id=1212 este parametro no es propagado a index_league.php
Para poder hacer que este parametros extra sea propagado (y todos los que quieras) debes poner un flag en la definicion de rewrite rule:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^leagues\/([^\/]+)\/?$ index_leagues.php?sport=$1 [QSA]
El flag [QSA] que significa Query String Append, adiciona a index_leagues.php todo los query string luego de sport=$1
En este link, tenés un listado completo de flags aplicables a las RewriteRules de apache: http://httpd.apache.org/docs/current/rewrite/flags.html
Sin comentarios a “Propagar parámetros query_strings, cuando usamos mod_rewrite de apache”
Por favor espera
Deja una respuesta