index htaccess ellislab eliminar php .htaccess codeigniter apache2

htaccess - CodeIgniter eliminando index.php de url



index.php codeigniter (25)

Mis URL actuales se parecen a [mysite]index.php/[rest of the slug] .
Quiero quitar index.php de estas URL.

mod_rewrite está habilitado en mi servidor apache2. En config , $config[''index_page''] = '''';

Mi archivo de raíz de código .htaccess contiene,

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]

Pero aún así no está funcionando. ¿Dónde estoy equivocado?


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]


  1. hacer archivo .htaccess y poner este código

    RewriteEngine on RewriteCond $1 !^(index/.php|resources|robots/.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]

  2. cambio

    $config[''index_page''] = '''';

eliminar index.php presente en el archivo config.php

  1. reescriba desde su servidor.

Además de estas respuestas, uno puede simplemente agregar index.php o editarlo (si ya está allí) - por seguridad desea deshabilitar index.php de todos modos, desde listar los archivos en el directorio de su sitio web - luego cambiar el contenido en

<?php header(''location:your_required_starting.php''); ?>



Bueno, todas estas respuestas son buenas, pero para un novato (que es lo primero) son confusas. Hay otros archivos htaccess que residen en el controlador pero tenemos que editar o agregar el htaccess en la carpeta principal del proyecto.

Esta es su carpeta codeigniter, donde el archivo reside como aplicación, sistema, activos, cargas, etc.

Your_project_folder/ application/ assets/ cgi-bin/ system/ .htaccess---->(Edit this file if not exist than create it) index.php

Cambie este archivo como se indica a continuación:

<IfModule mod_rewrite.c> RewriteEngine On # !IMPORTANT! Set your RewriteBase here and don''t forget trailing and leading # slashes. # If your page resides at http://www.example.com/mypage/test1 # then use RewriteBase /mypage/test1/ # Otherwise / RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> <IfModule !mod_rewrite.c> # If we don''t have mod_rewrite installed, all 404''s # can be sent to index.php, and everything works as normal. # Submitted by: Anand Pandey ErrorDocument 404 /index.php </IfModule>

y sí, por supuesto, necesita cambiar dos líneas de código en la aplicación / config / config.php

//find the below code $config[''index_page''] = "index.php"; $config[''uri_protocol''] ="AUTO" //replace with the below code $config[''index_page''] = ""; $config[''uri_protocol''] = "REQUEST_URI";


Cosa menor: (Opcional)

Intente reiniciar su Apache después de actualizar el estado del motor de reescritura en vhosts como Rewrite ON .

Una cosa crítica a tener en cuenta:

En el archivo de vhosts de Apache, compruebe si tiene esta línea de script AllowOverride None caso afirmativo, elimine / comente esta línea.

Script de mi archivo de vhosts: (anterior)

<VirtualHost *:80> DocumentRoot "/path/to/workspace" ServerName ciproject ErrorLog "/path/to/workspace/error.log" CustomLog "/path/to/workspace/access.log" common Directory "/path/to/workspace"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>

Script de mi archivo de vhosts: (después)

<VirtualHost *:80> DocumentRoot "/path/to/workspace" ServerName ciproject ErrorLog "/path/to/workspace/error.log" CustomLog "/path/to/workspace/access.log" common Directory "/path/to/workspace"> Options Indexes FollowSymLinks #AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>

Me enfrenté al mismo problema, luché durante alrededor de 1 día, todo estaba bien. Más tarde, por el método de prueba y error, encontré esto. Después de eliminar esto, mi trabajo se realizó. La URL ahora no busca a index.php :)


Creo que su configuración es buena, pero lo que hace es extraviar su archivo htaccess y agregar su htaccess a su archivo de proyecto

project_folder-> htaccess

y agrega este código a tu htaccess

RewriteEngine on RewriteCond $1 !^(index/.php|resources|robots/.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]


Hay dos pasos:

1) Editar config.php

$config[''index_page''] = ''index.php'';

A

$config[''index_page''] = ''’;

2) Crear / editar archivo .htaccess

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


Prueba este. Te puede ayudar ya que funciona para mí.

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]

coloque el código en su archivo htaccess raíz. y asegúrese de tener

$config[''index_page''] = '''';

en tu archivo de configuración

Por favor, avíseme si tiene algún problema.


Pruebe lo siguiente

Abra config.php y haga lo siguiente reemplaza

$config[''index_page''] = "index.php"

a

$config[''index_page''] = ""

En algunos casos, la configuración predeterminada para uri_protocol no funciona correctamente. Simplemente reemplace

$config[''uri_protocol''] ="AUTO"

por

$config[''uri_protocol''] = "REQUEST_URI"

.htaccess

RewriteEngine on RewriteCond $1 !^(index/.php|resources|robots/.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]

Nota: el código .htaccess varía según el servidor de alojamiento. En algún servidor de alojamiento (p. Ej .: Godaddy) ¿necesita usar un extra? en la última línea del código anterior. La siguiente línea será reemplazada por la última línea en el caso aplicable:

// Replace last .htaccess line with this line RewriteRule ^(.*)$ index.php?/$1 [L,QSA]


Siga estos pasos su problema será resuelto

1- Descarga el archivo .htaccess desde aquí https://www.dropbox.com/s/tupcu1ctkb8pmmd/.htaccess?dl=0

2- Cambie el nombre del directorio CodeIgnitor en la línea # 5. como mi nombre de directorio es abc (agrega tu nombre)

3- Guarde el archivo .htaccess en el directorio principal (abc) de su carpeta codeignitor

4- Cambiar uri_protocol de AUTO a PATH_INFO en el archivo Config.php

Nota: Antes que nada debes habilitar mod_rewrite desde httpd.conf de apachi eliminando los comentarios


Solo se requieren tres pasos para eliminar index.php de la URL en Codeigniter

1) Cree el archivo .htacess en paralelo al titular de la aplicación y simplemente copie el siguiente código:

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

2) Cambie $ config [''index_page''] a espacio en blanco en config.php en la carpeta de la aplicación como se muestra a continuación:

$config[''index_page''] = '''';

3) Habilita "rewrite_module" de apache.

Reinicia tu apache y listo.

Detalles: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/


Tanto desarrollo como producción

# Development RewriteEngine On RewriteBase /your_local_folder/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index/.php|images|scripts|styles|vendor|robots/.txt) RewriteRule ^(.*)$ index.php/$1 [L] #Production PHP5 CGI mode RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index/.php|images|scripts|styles|vendor|robots/.txt) RewriteRule ^(.*)$ index.php?/$1 [L]


Usa este código Cambia la segunda línea ya que tienes el nombre de tu carpeta. Donde se encuentra la aplicación index.php de archivos y carpetas, la carpeta del sistema. La mayoría de los problemas ocurren debido a la segunda línea. no configuramos el nombre de la carpeta donde se ubica el proyecto. Importante es la 2da línea. Esto es simple de eliminar el index.php. RewriteEngine en RewriteBase / project_folder_name RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteRule. * Index.php / $ 0 [PT, L]

#RewriteEngine on #RewriteCond $1 !^(index/.php|images|robots/.txt) #RewriteRule ^(.*)$ index.php/$1 [L]

Ir al archivo controller / config.php.

config [''index_url''] = '''';

Referencia para más estudio.

https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html

https://ellislab.com/blog/entry/fully-removing-index.php-from-urls


antes que nada, tienes que reiniciar el motor del servidor Apache. Este enlace te ayudará para eso

http://www.anmsaiful.net/blog/php/enable-apache-rewrite-module.html

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

este será su archivo .htaccess. ahora pruébalo. Esta configuración funciona para mí.


crea un nuevo archivo .htaccess en el directorio raíz.

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


en su htaccess use esto,

RewriteEngine On RewriteBase /root_folder_name/ RewriteCond %{REQUEST_URI} ^system.* RewriteCond $1 !^(index/.php|images|js|uploads|css|robots/.txt) RewriteRule ^(.*)$ /index.php/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]

Espero que esto ayude.


puede ir al archivo config / config.php y eliminar el valor de index.php de esta variable

$config[''index_page''] = ''index.php''; // delete index.php

cree el archivo .htaccess y pegue este código en él.

<IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On #Send request via index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>

Buena oportunidad


puede ir al archivo application / config / config.php y eliminar index.php

$config[''index_page''] = ''index.php''; // delete index.php

Cambiar a

$config[''index_page''] = '''';


si no funciona toda la solución anterior, entonces en la carpeta del proyecto habrá dos archivos index.html e index.php, cambiará el nombre de index.html a index_1.html y explorará tu proyecto.


Paso 1 :

Agregar esto en el archivo htaccess

<IfModule mod_rewrite.c> RewriteEngine On #RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L] </IfModule>

Paso 2 :

Eliminar index.php en la configuración codeigniter

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

Paso 3 :

Permitir reemplazar htaccess en la configuración de Apache (comando)

sudo nano /etc/apache2/apache2.conf

y edita el archivo y cambia a

AllowOverride All

para la carpeta www

Etapa 4 :

Habilitado reescribir mod de apache (comando)

sudo a2enmod rewrite

Paso 5:

Reiniciar Apache (Comando)

sudo /etc/init.d/apache2 restart


Paso: -1 Abra la carpeta "application / config" y abra el archivo "config.php". encuentre y reemplace el siguiente código en el archivo config.php.

//find the below code $config[''index_page''] = "index.php" //replace with the below code $config[''index_page''] = ""

Paso: -2 Vaya a su carpeta CodeIgniter y cree .htaccess

Path: Your_website_folder/ application/ assets/ system/ .htaccess <——— this file index.php

Paso: -3 Escriba el código a continuación en el archivo .htaccess

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

Paso: -4 En algunos casos, la configuración predeterminada para uri_protocol no funciona correctamente. Para resolver este problema solo abra el archivo "application / config / config.php", luego busque y reemplace el código siguiente

//find the below code $config[''uri_protocol''] = "AUTO" //replace with the below code $config[''uri_protocol''] = "REQUEST_URI"

Eso es todo menos en el servidor de wamp, no funciona porque rewrite_module está deshabilitado de forma predeterminada, por lo que tenemos que habilitarlo. para esto haz lo siguiente

  1. Haga clic con el botón izquierdo en el icono WAMP
  2. apache
  3. Módulos Apache
  4. Haz clic izquierdo en rewrite_module

Link


Removing index.php from url of codeigniter Three steps are require to remove index.php from url in Codeigniter. 1)Create .htacess file in parallel to application holder and just copy past the following code: RewriteEngine On RewriteBase /CodeIgniter/ RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] 2) Change $config[''index_page''] to blank in config.php in application folder as below: $config[''index_page''] = ''''; 3) Enable “rewrite_module” of apache.


+ Copy .htaccess from Application to Root folder + edit .htaccess and put <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /ci_test/ #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] #When your application folder isn''t in the system folder #This snippet prevents user access to the application folder #Submitted by: Fabdrol #Rename ''application'' to your applications folder name. RewriteCond %{REQUEST_URI} ^application.* 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 RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> <IfModule !mod_rewrite.c> # If we don''t have mod_rewrite installed, all 404''s # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin ErrorDocument 404 /index.php </IfModule> Note: make sure your web server is enable for "rewrite_module" + Remove index.php from $config[''index_page''] = ''index.php''; - edit config.php in application/config - search for index.php change it from $config[''index_page''] = ''index.php''; to $config[''index_page''] = '''';

Mire estos videos para referencia https://www.youtube.com/watch?v=HFG2nMDn35Q


RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]

utilizar

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$1 [PT,L]

si tiene url en este orden site.com/index.php/class/method/id

NB: eliminar index.php en config.php debe ser config [index_page] = ""

NB: observe la diferencia en la última línea en lugar de $ 0 use $ 1