CodeIgniter eliminando index.php de la url

160

Mis URL actuales se ven así [mysite]index.php/[rest of the slug].
Quiero despojarme index.phpde estas URL.

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

Mi .htaccessarchivo raíz codeignitor contiene,

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

Pero aún así no está funcionando. ¿A dónde me estoy yendo mal?

Nihar Sarangi
fuente
2
posible duplicado de Cómo eliminar "index.php" en la ruta de
codeigniter
¿Por qué esta pregunta tiene tantas respuestas duplicadas
Tilak Maddy

Respuestas:

239

Intenta lo siguiente

Abra config.php y realice los siguientes reemplazos

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

a

$config['index_page'] = ""

En algunos casos, la configuración predeterminada para uri_protocolno funciona correctamente. Solo 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 algunos servidores de alojamiento (por ejemplo: 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] 
Rahul Tailwal
fuente
44
He intentado este código, RewriteRule ^(.*)$ index.php/$1 [L]pero aún puedo ver la página en ambos sentidos: dominio.com/about-us, dominio.com/index.php/about-us y dominio.com/index.php?/about-us que generan Error de SEO, es decir, etiqueta de título duplicada y meta descripción duplicada
Musaddiq Khan
Gracias por la respuesta, obtuve el mismo problema y agregué el primer RewriteCond para que funcione. ¿Puede explicar por qué el manual (aquí: codeigniter.com/userguide3/general/… ) no lo menciona?
Claudio
Gracias por su respuesta, recibí el mismo problema de tank-auth
striker_axel
$_POSTo isset($_POST)no funciona después de agregar esto.
DCK
1
y no olvide cambiar la configuración de apache como se menciona en stackoverflow.com/a/14807463/1537413
Dika
135

Paso: -1 Abra la carpeta "application / config" y abra el archivo "config.php". busque 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 Ve a tu carpeta CodeIgniter y crea .htaccess

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

Paso: -3 Escribe el siguiente código 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, simplemente abra el archivo "application / config / config.php", luego busque y reemplace el siguiente código

//Not needed for CodeIgniter 3 its already there.
//find the below code
$config['uri_protocol'] = "AUTO"
//replace with the below code
$config['uri_protocol'] = "REQUEST_URI" 

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

  1. Haga clic izquierdo en el icono WAMP
  2. apache
  3. Módulos Apache
  4. Clic izquierdo rewrite_module

Documentación original

Enlace de ejemplo

MaxEcho
fuente
66
Tuve que poner el .htaccess en la carpeta raíz en lugar de la carpeta "aplicación" para que esto funcionara
Mawardy
No tengo la carpeta CodeIgniter. ¿De qué estás hablando?
Nicolas S.Xu
1
elimina index.php pero también necesito eliminar la barra invertida adicional '/'
Pradeep Kumar Prabaharan
después de cambiar en config.php y crear el archivo .htaccess. Recibo el error Error de análisis: error de sintaxis, inesperado '$ config' (T_VARIABLE) en la aplicación \ config \ config.php en la línea 55
Fawwad
Gracias por la respuesta. Para mí, necesitaba actualizar mi archivo htaccess como se muestra y luego asegurarme de que fuera un hermano de la carpeta del sistema, no dentro de ella.
Kiky Rodriguez
44

Paso 1 :

Agregue 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 de codeigniter

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

Paso 3 :

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

sudo nano /etc/apache2/apache2.conf

y edite el archivo y cambie a

AllowOverride All

para la carpeta www

Paso 4 :

Habilitado reescribir mod de apache (comando)

sudo a2enmod rewrite

Paso 5:

Reiniciar Apache (comando)

sudo /etc/init.d/apache2 restart
Dino
fuente
3
"AllowOverride All" en apache2.conf resolvió el problema para mí, ya que los archivos .htaccess no se usan por defecto.
Laurent Jégou
1
¡Ojalá pudiera darte un bono por esto! Me salvó el día Pasé 2 horas después de esto: |
Kiran P.
1
Parece que para las distribuciones recientes de Linux lo primero que hay que hacer es editar la regla AllowOveride
Nasz Njoka Sr.
Finalmente lo puse a trabajar. Gracias. La regla AllowOveride me ayuda con este problema. Estoy usando ubuntu 16.04
Apit John Ismail
Excelente solución, gracias :)
Razib Al Mamun
16
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

usuario3464848
fuente
esto funciona para mi Las respuestas anteriores no. No he probado las respuestas a continuación.
Jam Ville
Esto funcionó para mí, pero tuve que cambiar el protocolo uri de 'AUTO; a 'REQUEST_URI' así: $ config ['uri_protocol'] = 'REQUEST_URI';
isabelle martz
RewriteRule .* index.php/$1 [PT,L]- esto no pasará la ruta URL a menos que cambie el RewriteRule patrón de .*a (.*). Sin embargo, si está utilizando $config['uri_protocol'] = 'REQUEST_URI';, esto es irrelevante de todos modos.
MrWhite
16

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 usa una subcarpeta como - yourdomain.com/project/ - 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 la carpeta raíz como - yourdomain.com - use el siguiente código en el archivo htaccess

RewriteEngine on
RewriteBase    /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
vinod
fuente
Esta es, con mucho, la mejor y completa respuesta. Lo de la subcarpeta es lo que lo hace mejor que otras respuestas.
Bhavik Shah
Esta DEBE ser la respuesta. La respuesta votada con la parte sobre: ​​RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D Eso no funcionó para mí.
GunWanderer
11

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.

Yuvaraj Bathrabagu
fuente
root_folder_name -> ¿has cambiado esto con el nombre de tu carpeta raíz?
yuvaraj bathrabagu
Si, hice eso. Puse mi codeigniter raíz allí. ¿Es eso correcto?
Nihar Sarangi
¡Amigo, estoy usando este código .htaccess en dos de mis proyectos de CI! y ambos funcionan bien !!
yuvaraj bathrabagu
11

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]
Shafi
fuente
6
  1. hacer un .htaccessarchivo 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.phppresente en el config.phparchivo

  1. reescribe desde tu servidor.
Siddharth Shukla
fuente
6

1.Cree 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>`

2. Vaya a su archivo config.php y cambie de $config['index_page'] = 'index.php' a$config['index_page'] = ''

Manish Sharma
fuente
6

Lo resolvió con 2 pasos.

  1. Actualización 2 parámetros en el archivo de configuración application / config / config.php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
  1. Actualice el archivo .htaccess en la carpeta raíz
<IfModule mod_rewrite.c>
    RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
Khachornchit Songsaen
fuente
5

prueba este. Puede ayudarte, ya que me está funcionando

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

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

$config['index_page'] = '';

en tu archivo de configuración.

Avísame si tienes algún problema.

ABorty
fuente
Eso es exactamente lo que estaba haciendo.
Nihar Sarangi
4
+ 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 como referencia https://www.youtube.com/watch?v=HFG2nMDn35Q

KH SolveCode
fuente
4

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

Esta es su carpeta codeigniter, donde reside el archivo 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 está escrito 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, debe 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";
Anand Pandey
fuente
Por alguna razón, todas estas respuestas no me funcionan. Puedo acceder a las páginas cuando agrego /index.php/ en url.
Bilal Ahmad
3

Desarrollo y 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]
cgwCode
fuente
3

en primer lugar, debe hacerlo en el motor de reescritura del servidor apache. Este enlace lo 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 inténtalo. Esta configuración funciona para mí.

vaibhav kulkarni
fuente
2

puede ir al archivo config \ config.php y eliminar el valor 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

abbas hussen
fuente
2
  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.
Pritam Chaudhari
fuente
1

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

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

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'] en blanco en config.php en la carpeta de la aplicación como se muestra a continuación:

$config['index_page'] = '';

3) Habilite "rewrite_module" de apache.

Reinicia tu apache y listo.

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

Suresh Kamrushi
fuente
1

Creo que su configuración es buena, pero está haciendo que extravíe su archivo htaccess, vaya y agregue su htaccess a su archivo de proyecto

carpeta_proyecto-> htaccess

y agregue este código a su htaccess

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

puedes ir al archivo application \ config \ config.php y eliminar index.php

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

Cambiar a

 $ config ['index_page'] = '';

Rafiqul Islam
fuente
1

prueba este RewriteEngine On

        # Removes index.php from ExpressionEngine URLs
        RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
Kashif
fuente
1

Esto funciona para mi. Probado en codeigniter 3.1.11, PHP 5.6.40 Uso un host virtual en mi configuración apache2 en el servidor de prueba.

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot (__DIR__)
     ServerName mydomain
     ##ErrorLog "logs/dummy-host2.example.com-error.log"
     ##CustomLog "logs/dummy-host2.example.com-access.log" common
     <Directory "(__DIR__)">
        Require all granted
        AllowOverride All
   </Directory>
</VirtualHost>

Y /.htaccess contenido

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

Siga estos pasos, su problema se resolverá

1- Descargue 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 (agregue su nombre)

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

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

Nota: en primer lugar, debe habilitar mod_rewrite desde httpd.conf de apachi eliminando los comentarios

Salman Khan
fuente
0

Usa este código. Cambie la segunda línea ya que tiene el nombre de su carpeta. Donde el archivo index.php y la aplicación de carpetas, se encuentra 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 para 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]    

Vaya 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

Hafiz Shehbaz Ali
fuente
0

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, al enumerar los archivos en el directorio de su sitio web, luego cambiar el contenido a

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

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 vhosts de Apache, verifique si tiene esta línea de script. En AllowOverride None caso afirmativo, elimine / comente esta línea.

Mi script de archivo vhosts: (Antes)

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

Mi script de archivo 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>

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

Lalith Kumar
fuente
0

si toda la solución anterior no funciona, en la carpeta de su proyecto habrá dos archivos index.html e index.php, cambie el nombre de index.html a index_1.html y explore su proyecto.

Mohsin Shoukat
fuente
0

Tenga en cuenta la diferencia con el agregado "?" carácter después de ".php", especialmente cuando se trata de CodeIgniter:

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

vs.

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

Depende de varias otras cosas ... si no funciona, ¡pruebe la otra opción!

eyal_katz
fuente
0

Puede eliminar index.php de la url colocando algún código en .htaccess

Ruta del archivo: raíz> .htacess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


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

Espero que funcione.

Rokan Nashp
fuente
0

En CodeIgniter 3.16 al usar htaccess para

eliminar el archivo index.php

& además

redirigir HTTP a HTTPS

Los siguientes son los códigos:

  • ir al application\config\config.phparchivo

Hacer cambios

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

A

$config['index_page'] = '';
  • Ahora, abra el archivo .htaccess y actualice los códigos a continuación
RewriteEngine on
RewriteBase /

## Redirect SSL
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

## Remove fron url index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^/(index\.php|assets/|humans\.txt)
RewriteRule ^(.*)$ index.php/$1 [L] 
Chandan Sharma
fuente