Cómo usar tanto segmentos URI como cadenas de consulta sin habilitar: enable_query_strings

En CodeIgniter es realmente difícil combinar segmentos URI y cadenas de consulta al mismo tiempo. Una de las formas tradicionales de lograrlo casi es habilitar enable_query_strings .

El problema es que esto tiene un comportamiento extraño y afecta a todos los ayudantes de URL también.

Por ejemplo, cuando se utiliza: redirect('/home') se redirige a domain.com/?/home .

Según mi conocimiento, enable_query_strings no está diseñado para usarse con segmentos URI.

Entonces, ¿cómo extender el núcleo para habilitar GET y URI fuera de la caja?

PD: Sé que es mejor usar solo segmentos URI, pero a veces es muy importante aceptar consultas GET como las de Adwords.

La mejor solución es esta:

  • Asegúrese de estar en la última versión de CI, actualmente 2.0.2
  • Olvídate de la engañosa enable_query_strings (no es lo que quieres)
  • Abra su archivo de configuración y establezca allow_get_array en TRUE , lo que le permitirá usar $_GET
  • Juega con la configuración uri_protocol hasta que encuentres una que funcione para tu entorno, PATH_INFO funciona para mí.
  • Disfrute el uso de cadenas de consulta adecuadas!

enable_query_strings rompe casi toda la funcionalidad que hace que Codeigniter sea excelente, incluidas todas las funciones de ayuda que se ocupan de las URL. Fue una característica experimental que se ha confundido con el soporte de cadenas de consulta normales durante el tiempo que ha existido CI.

En pocas palabras: solo actualice (si aún no lo ha hecho) y no intente escribir un hack para ello.