language php codeigniter redirect urlhelper

php - language - Redirigir con CodeIgniter



codeigniter detect browser language (5)

redirigir ()

URL Helper

La instrucción de redirección en el encendedor de código envía al usuario a la página web especificada mediante una instrucción de encabezado de redireccionamiento.

Esta declaración reside en el asistente de URL que se carga de la siguiente manera:

$this->load->helper(''url'');

La función de redirección carga un URI local especificado en el primer parámetro de la llamada a función y se genera utilizando las opciones especificadas en su archivo de configuración.

El segundo parámetro permite al desarrollador usar diferentes comandos HTTP para realizar la "ubicación" o "actualización" de redireccionamiento.

De acuerdo con la documentación de Code Igniter: "La ubicación es más rápida, pero en los servidores de Windows a veces puede ser un problema".

Ejemplo:

if ($user_logged_in === FALSE) { redirect(''/account/login'', ''refresh''); }

¿Alguien puede decirme por qué mi redirect helper no funciona de la manera que esperaba? Estoy tratando de redireccionar al método de índice de mi controlador principal, pero me lleva www.mysite.com/index/provider1/ cuando debe enrutar a www.mysite.com/provider1 . ¿Esto tiene sentido para alguien? Tengo la página de índice configurada en blanco, aunque no creo que sea el problema. ¿Alguien tiene consejos sobre cómo solucionar este problema? ¡Gracias por adelantado!

Controlador :

if($provider == '''') { redirect(''/index/provider1/'', ''location''); }

.htaccess :

RewriteEngine on RewriteCond %{REQUEST_URI} !^(index/.php|files|images|js|css|robots/.txt|favicon/.ico) RewriteCond %{HTTP_HOST} ^mysite.com/ttnf/ RewriteRule (.*) http://www.mysite.com/ttnf/$1 [R=301,L] RewriteBase /ttnf/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] php_flag display_errors On


Aquí está el archivo .htacess que oculta el archivo de índice

#RewriteEngine on #RewriteCond $1 !^(index/.php|images|robots/.txt) #RewriteRule ^(.*)$ /index.php/$1 [L] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # Removes index.php from ExpressionEngine URLs RewriteCond %{THE_REQUEST} ^GET.*index/.php [NC] RewriteCond %{REQUEST_URI} !/system/.* [NC] RewriteRule (.*?)index/.php/*(.*) /$1$2 [R=301,NE,L] # Directs all EE web requests through the site index file RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>


Si desea redirigir la ubicación anterior o la última solicitud, debe incluir la biblioteca user_agent :

$this->load->library(''user_agent'');

y luego use por fin en una función que esté usando:

redirect($this->agent->referrer());

está funcionando para mí.


Si su estructura de directorios es así,

site application controller folder_1 first_controller.php second_controller.php folder_2 first_controller.php second_controller.php

Y cuando va a redirigirlo en el mismo controlador en el que está trabajando, solo escriba el siguiente código.

$this->load->helper(''url''); if ($some_value === FALSE/TRUE) //You may give 0/1 as well,its up to your logic { redirect(''same_controller/method'', ''refresh''); }

Y si desea redirigir a otro control, utilice el siguiente código.

$this->load->helper(''url''); if ($some_value === FALSE/TRUE) //You may give 0/1 as well,its up to your logic { redirect(''folder_name/any_controller_name/method'', ''refresh''); }


primero, necesita cargar URL helper como este tipo o puede cargarlo dentro del archivo autoload.php:

$this->load->helper(''url''); if (!$user_logged_in) { redirect(''/account/login'', ''refresh''); }