rewriterule rewriteengine rewritecond para page index htaccess ellislab eliminar .htaccess codeigniter subdirectory

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