Cómo eliminar "index.php" en la ruta de codeigniter

Resuelto OrangeRind asked hace 54 años • 27 respuestas

¿Cómo elimino lo "index.php"que sobresale en cada ruta en CodeIgniter en algún lugar del centro? ¿ Quiero limpiar no index.php-fied URLs?

OrangeRind avatar Jan 01 '70 08:01 OrangeRind
Aceptado

Si está utilizando Apache, coloque un archivo .htaccess en su directorio web raíz que contenga lo siguiente:

RewriteEngine on
RewriteCond $1 !^(index\.php|[Javascript / CSS / Image root Folder name(s)]|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Otra buena versión se encuentra aquí:

http://snipplr.com/view/5966/codeigniter-htaccess/

Sean Vieira avatar Sep 18 '2009 15:09 Sean Vieira

Tuve algunos problemas importantes al eliminar index.php. Como regla general, el siguiente .htaccess ha sido probado en varios servidores y generalmente funciona:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]  

<Files "index.php">
AcceptPathInfo On
</Files>  

Si no tiene suerte con eso, el siguiente paso es ajustar su archivo de configuración. Pruebe algunos de los otros protocolos URI, por ejemplo

| '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']  = 'ORIG_PATH_INFO';

Si aún no tienes suerte, intenta cambiar la regla de reescritura para incluir tu subcarpeta. Esto suele ser un problema si usas una URL temporal en un servidor de desarrollo, etc.:

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

Simplemente juegue con estas opciones, una debería funcionar. Además, asegúrese de que su archivo de índice esté configurado en:

$config['index_page'] = '';
jimbo2087 avatar Oct 28 '2011 14:10 jimbo2087