2012-04-28 17 views
7

he instalado IC en www.siteb.com/rexona subdirecotryCodeIgniter ningún archivo de entrada especificado de error

Mi .htaccess dentro www.siteb.com/rexona:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /rexona 

#Removes access to the system folder by users. 
#Additionally this will allow you to create a System.php controller, 
#previously this would not have been possible. 
#‘system’ can be replaced if you have renamed your system folder. 
RewriteCond %{REQUEST_URI} ^system.* 
RewriteRule ^(.*)$ /index.php/$1 [L] 

#Checks to see if the user is attempting to access a valid file, 
#such as an image or css document, if this isn’t true it sends the 
#request to index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
#This last condition enables access to the images and css folders, and the robots.txt file 
#Submitted by Michael Radlmaier (mradlmaier) 
RewriteCond $1 !^(index\.php|images|robots\.txt|css) 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 

ErrorDocument 404 /index.php 
</IfModule> 

En config.php:

$config['index_page'] = ''; 
$config['base_url'] = ''; 
$config['uri_protocol'] = 'AUTO'; 

Siempre que trato de controladores de acceso llego Sin archivo de entrada especificado. Sin embargo, sí carga el controlador predeterminado, pero tampoco puedo acceder a ningún método en el controlador predeterminado.

¿Alguna idea? Gracias.

Respuesta

24

Su uri_protocol necesita establecerse en algo, al menos establecerlo en automático.

El error que está recibiendo es porque PHP se ejecuta como CGI, lo que significa que necesita pasar la reescritura de URL a index.php?/$1 en su lugar (tenga en cuenta el signo de interrogación).

+0

¿funcionará esto si transfiero el código a un servidor donde PHP se ejecuta como módulo apache? –

+0

@Peter Si la configuración 'uri_protocol' está configurada en AUTO, sospecho que sí. Sin embargo, no recomendaría usar configuraciones de servidor específicas para un tipo de implementación cuando el servidor usa otra. – Repox

+0

gracias, funciona en el alojamiento en vivo y también se ha eliminado el error de error relacionado con la carga de la biblioteca dinámica no válida –

1

Su $config['uri_protocol'] no debe estar vacío. El valor predeterminado es AUTO, al pasar una cadena vacía se romperá la clase URI central, que se utiliza para enrutar sus solicitudes a través de la clase Router.

/* 
|-------------------------------------------------------------------------- 
| URI PROTOCOL 
|-------------------------------------------------------------------------- 
| 
| This item determines which server global should be used to retrieve the 
| URI string. The default setting of 'AUTO' works for most servers. 
| If your links do not seem to work, try one of the other delicious flavors: 
| 
| 'AUTO'   Default - auto detects 
| 'PATH_INFO'  Uses the PATH_INFO 
| 'QUERY_STRING' Uses the QUERY_STRING 
| 'REQUEST_URI'  Uses the REQUEST_URI 
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO 
| 
*/ 
$config['uri_protocol'] = 'AUTO'; 

Como los comentarios dicen: "Si no se parecen a sus enlaces no funciona, pruebe uno de los otros deliciosos sabores".
Cadena vacía no es uno de esos sabores, terminaría tratando de leer desde $_SERVER[''], que normalmente va a estar vacío.

+0

Hola, probé todas las opciones pero sin éxito .... ¿Dónde podría estar el problema? ¿Es .htaccess o configuración de CI o servidor ...? – fjckls

+0

De acuerdo, lo dejé en automático. Por alguna razón, pensé que dejarlo en blanco lo configuraría por defecto. – fjckls

+0

Al mirar el código fuente de CI, no vi una razón por la cual una cadena vacía no podría hacer el mismo trabajo que "AUTO". Personalmente, creo que tendría sentido y sería más coherente con otros elementos de configuración, supongo que es la forma en que eligieron hacerlo. –

3

GoDaddy de alojamiento, parece fija on.htaccess, mismo que está trabajando cambiando:

RewriteRule ^(.*)$ index.php/$1 [L] 

a

RewriteRule ^(.*)$ index.php?/$1 [QSA,L] 
+0

esto funcionó para mí. muchas gracias. – kanchan

0

consigo el mismo error en cuenta gratuita hostinger, resolver el tema presentado por jhon foo arriba.

mi .htaccess

RewriteBase /MY_SUBFOLDER_UNDER_HTML_DIRECTORY/ 
RewriteEngine on 

RewriteBase /mY_subfolder/ 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$0 [QSA,L] 

Este trabajo fino, gracias mucho!

Cuestiones relacionadas