remove - Cómo eliminar "index.php" en la ruta de codeigniter
remove index.php codeigniter (25)
¿Cómo elimino el "index.php"
que sobresale en cada ruta en Codeigniter en algún lugar en el centro? Quiero index.php-fied URLs
limpias sin index.php-fied URLs
?
Paso 1 => Coloque su archivo .htaccess en la carpeta raíz donde existen las carpetas de la aplicación y del sistema.
Paso 2 => Si su ruta web utiliza una subcarpeta como - yourdomain.com/project/ - luego use el siguiente código en el archivo htaccess
RewriteEngine on
RewriteBase /project/
RewriteCond $1 !^(index/.php|images|robots/.txt)
RewriteRule ^(.*)$ /project/index.php/$1 [L]
Si su ruta web utiliza una carpeta raíz como - tudominio.com - luego use el siguiente código en el archivo htaccess
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index/.php|images|robots/.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Solución perfecta [probada en el servidor local así como en el dominio real]
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
Asegúrese de haber habilitado mod_rewrite
(no lo había hecho).
Para permitir:
sudo a2enmod rewrite
Además, reemplace AllowOverride None
por AllowOverride All
sudo gedit /etc/apache2/sites-available/default
Finalmente ...
sudo /etc/init.d/apache2 restart
Mi .htaccess es
RewriteEngine on
RewriteCond $1 !^(index/.php|[assets/css/js/img]|robots/.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
Como archivo .htaccess, una buena opción es usar el que proporciona el Framework Kohana :
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase /
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Protect application and system files from being viewed
RewriteRule ^(?:application|system)/b.* index.php/$0 [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
Es un .htaccess bien pensado que simplemente funciona.
Copie el código siguiente en su .htaccess
RewriteEngine on
Options -Indexes
RewriteCond $1 !^(index/.php|assets|robots/.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Eche un vistazo en el archivo system/application/config/config.php
, hay una variable llamada index_page
Debe tener un aspecto como este
$config[''index_page''] = "index.php";
cambiarlo a
$config[''index_page''] = "";
Luego, como se mencionó, también necesita agregar una regla de reescritura al archivo .htaccess
Nota: en CodeIgniter v2 este archivo se movió fuera de la carpeta del sistema a application/config/config.php
Este es un .htaccess para uno de mis proyectos de CI:
RewriteEngine on
RewriteCond $1 !^(index/.php|images|css|js|robots/.txt)
RewriteRule ^(.*)$ /projectFolder/index.php/$1 [L]
La última línea debería darle lo que necesita, aunque puede necesitar o no ''/ projectFolder'' dependiendo de cómo esté configurada la estructura de su carpeta. ¡Buena suerte!
Este me hizo la magia completa:
RewriteEngine on
RewriteBase /
# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|/.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
¡Espero eso ayude!
Hay dos maneras de resolver index.php en la ruta url para codeigniter
1: en config / config.php Cambiar código:
$config[''index_page''] = ''index.php'';
a
$config[''index_page''] = '''';
2: cree .htacess en la ruta raíz si no se ha creado, copie el siguiente código: -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Guárdelo y luego compruebe su configuración de Apache rewrite_module O mod_rewrite está habilitado. Si no está habilitado. (Mejor enfoque)!
He intentado muchas soluciones, pero la que surgió es esta:
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index/.php|(.*)/.swf|forums|images|css|downloads|jquery|js|robots /.txt|favicon/.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
Esto eliminará el index.php de la url según sea necesario.
Hola, este me funcionó
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /folder/index.php?/$1 [L]
tan bien como esto
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /folder/index.php?/$1 [L]
donde la carpeta es el nombre de la subcarpeta si esta aplicación codeigniter está alojada como un subdominio, por ejemplo, nombre de dominio / carpeta / index.php.
Espero que eso te funcione. Gracias.
Mire en el archivo /application/config/config.php
, hay una variable llamada index_page
Debe tener un aspecto como este
$config[''index_page''] = "index.php";
cambiarlo a
$config[''index_page''] = "";
Luego, como se mencionó, también necesita agregar una regla de reescritura al archivo .htaccess
esta manera:
RewriteEngine on
RewriteCond $1 !^(index//.php|resources|robots//.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Funciona para mí, espero que tú también.
Probé esto en apache2 en muchos hosts diferentes y funciona muy bien.
usa este htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
asegúrese de haber enabled mod_rewirte
con un phpinfo();
luego haz esto en config / config.php:
$config[''index_url''] = '''';
|
| ''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'';
si aún no funciona, intente cambiar $config[''uri_protocol'']=''AUTO''
a uno de los archivos enumerados dentro de la application/config/config.php
en la línea 40/54:
a veces utilicé: REQUEST_URI
lugar de AUTO
o "QUERY_STRING"
para goDaddy hostings
Si está en linux y está utilizando el servidor apache2, es posible que necesitemos reemplazar el archivo apache2.conf además de los cambios en el archivo .htaccess. Encuentre el archivo de configuración de apache2 en /etc/apache2/apache2.conf .
Directorio de búsqueda / var / www / Change AllowOverride None -> AllowOverride All
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory
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í:
Solo pensé que podría agregar
RewriteEngine on
RewriteCond $1 !^(index/.php|resources|robots/.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
sería .htaccess y asegúrese de editar su variable application / config.php de la siguiente manera:
reemplazar
$config[''uri_protocol''] = “AUTO”
con
$config[''uri_protocol''] = “REQUEST_URI”
Tenga el archivo .htaccess en el directorio raíz de la aplicación, junto con el archivo index.php. (Compruebe si la extensión htaccess es correcta, Bz htaccess.txt no funcionó para mí).
Y añada las siguientes reglas al archivo .htaccess,
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Luego encuentra la siguiente línea en tu archivo application / config / config.php
$config[''index_page''] = ''index.php'';
Establezca la variable vacía como se muestra a continuación.
$config[''index_page''] = '''';
Eso es todo, funcionó para mí.
Si no funciona, intente reemplazar la siguiente variable con estos parámetros (''AUTO'', ''PATH_INFO'', ''QUERY_STRING'', ''REQUEST_URI'' y ''ORIG_PATH_INFO'') uno por uno
$config[''uri_protocol''] = ''AUTO'';
Todos los métodos anteriores fallaron y luego descubrí que no estaba cambiando AllowOverride None para AllowOverride All en mi archivo de host virtual en / etc / apache2 / sites-available / default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All <---- replace None with All
</Directory>
<Directory /var/www >
Options Indexes FollowSymLinks MultiViews
AllowOverride All <--- replace None with All
Order allow,deny
allow from all
</Directory>
...
Tuve algunos problemas importantes al eliminar el index.php. Como regla general, el .htaccess siguiente 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 tienes suerte, el siguiente paso es ajustar tu archivo de configuración. Pruebe algunos de los otros protocolos de 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 todavía no tiene suerte, intente cambiar la regla de reescritura para incluir su subcarpeta. Esto suele ser un problema si usa una URL temporal en un servidor de desarrollo, etc.
RewriteRule ^(.*)$ /subofolder1/subfolder2/index.php/$1 [L]
Solo juegue con estas opciones, uno debería funcionar. Además, asegúrese de que su archivo de índice esté configurado para:
$config[''index_page''] = '''';
¡Buena suerte!
Use mod_rewrite
como se indica en este tutorial de CI wiki.
Yo uso estas líneas en el archivo .htaccess
; que coloco en la carpeta raíz
RewriteEngine on
RewriteRule ^(application|system|/.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
Entonces puedo acceder a http://example.com/controller/function/parameter
en lugar de http://example.com/index.php/controller/function/parameter
Esto te ayudará a pegar este código en la carpeta de la aplicación en el archivo .htacess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
<Files "index.php">
AcceptPathInfo On
</Files>
<IfModule mod_php5.c>
php_value short_open_tag 1
</IfModule>
coloque un archivo .htaccess en su directorio web raíz
Cualquier ajuste que haga, si lo anterior no se cumple, no funcionará. Por lo general, está en la carpeta del sistema, debe estar en la raíz. ¡Aclamaciones!
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /codeigniter/index.php/$0 [PT,L]
después de cambiar RewriteRule. * index.php / $ 0 [PT, L] con el nombre de la carpeta del proyecto "codeigniter" .its que funciona para mí. Gracias chicos por su apoyo.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
Esto definitivamente debe funcionar ... intentarlo