.htaccess - rewriteengine - Usando htaccess para eliminar codeigniter index.php en un subdirectorio
rewriteengine codeigniter (4)
Estoy tratando de eliminar el index.php de mis URL de CI, pero al seguir las instrucciones, parece que no funciona.
Tengo una instalación codeigniter ejecutándose en un subdirectorio. Hay un controlador predeterminado configurado en la configuración de rutas llamado main, y otro controlador llamado ''create''. El valor predeterminado funciona bien, pero yendo a / create devuelve un error 324 que dice Sin datos recibidos. Mi htaccess se ve así:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
.htaccess agregar:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
Vaya a application / config / config.php y borre el valor de configuración de la página de índice:
// Old
$config[''index_page''] = "index.php";
// New
$config[''index_page''] = "";
Resuelto Mi problema espero que otros también ... :)
A veces necesitas habilitar el módulo de reescritura, ejecutar "apache2 enable module rewrite":
sudo a2enmod rewrite
Debe reiniciar el servidor web para aplicar los cambios:
sudo service apache2 restart
Luego sigue la respuesta de Sofía.
Esto debería ser suficiente:
<IfModule mod_rewrite.c>
RewriteEngine On
#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
#This last condition enables access to the images and css folders, and the robots.txt file
RewriteCond $1 !^(index/.php|public|images|robots/.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Esto es lo que uso Mi CodeIgniter también se ejecuta en un subdirectorio.
RewriteEngine on
RewriteCond $1 !^(index/.php|images|swf|uploads|js|css|robots/.txt)
RewriteRule ^(.*)$ /ci/index.php/$1 [L]