Redireccionar con CodeIgniter


¿Puede alguien decirme por qué mi ayudante de redirección no funciona de la manera que esperaría? Estoy tratando de redirigir al método index de mi controlador principal, pero me lleva www.mysite.com/index/provider1/ cuando debería enrutar a www.mysite.com/provider1. ¿Esto tiene sentido para alguien? Tengo la página de índice en configuración en blanco, aunque no creo que sea el problema. ¿Alguien tiene consejos sobre cómo solucionar este problema? Gracias de antemano!

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
Author: imlouisrussell, 2009-04-07

5 answers

Redirect()

URL Helper


La instrucción redirect en code igniter envía al usuario a la página web especificada mediante una instrucción de encabezado redirect.

Esta instrucción reside en el helper de URL que se carga de la siguiente manera:

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

La función redirect carga un URI local especificado en el primer parámetro de la llamada a la función y construido usando las opciones especificadas en su archivo de configuración.

El segundo parámetro permite al desarrollador utilizar diferentes comandos HTTP para realizar la redirección "ubicación" o "refrescar".

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

Ejemplo:

if ($user_logged_in === FALSE)
{
     redirect('/account/login', 'refresh');
}
 134
Author: Jon Winstanley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-07 11:27:08

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 vaya a redirigirlo en el mismo controlador en el que está trabajando, simplemente 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');
}
 4
Author: Raham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-20 09:50:14

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

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

Y luego utilizar por fin en una función que está utilizando:

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

Está funcionando para mí.

 3
Author: Md Safiul Alam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-28 08:12:44

Primero, debe cargar URL helper como este tipo o puede cargar dentro de autoload.archivo php:

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

if (!$user_logged_in)
{
  redirect('/account/login', 'refresh');
}
 2
Author: Siddharth Shukla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-21 01:13:45

Aquí está .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>
 1
Author: Alpesh-Prajapati,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-28 08:22:53