rewriterule remove quitar index htaccess ellislab eliminar con php mod-rewrite codeigniter url-rewriting

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í:

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


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!




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