quitar - Eliminar index.php de URL-Codeigniter 2
remap codeigniter example (7)
Tengo problemas para eliminar index.php de mis URL en Codeigniter. He creado algunos sitios web con Codeigniter 1.7 y el código .htaccess que utilicé no funciona en 2.
He intentado usar
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
y
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index/.php|images|robots/.txt|css)
RewriteRule ^(.*)$ ./index.php/$1 [L]
</IfModule>
También lo probé sin RewriteBase / in.
Cambié $ config [''uri_protocol''] a REQUEST_URI y QUERY_STRING y nada.
He configurado $ config [''index_page''] = "";
La estructura del archivo es 192.168.0.130/(site)/, por lo que debe estar volviendo a la raíz del servidor y no puede encontrar el archivo index.php.
Se puede acceder a todos los controladores que he creado poniendo 192.168.0.130/(site)/index.php/testcontroller
Gracias.
Disculpas si esto se ha preguntado antes: he buscado y probado lo que pude ver.
Editar:
También debería agregar que cambié las carpetas predeterminadas para ser
solicitud
CI-2.0
index.php
y cambió las rutas en index.php para ser correcto.
1) Cree un archivo .htaccess en su carpeta raíz
RewriteEngine on
RewriteCond $1 !^(index/.php|resources|robots/.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
2) Editar el archivo application / config / config.php en la carpeta de la aplicación
$config[''base_url''] = ''http://localhost/projectName'';
$config[''index_page''] = ''''; // remove index.php
espero que funcione para ti
Después de seguir todas las instrucciones de otras personas y de esta documnetación de la URL de CodeIgnitor , no olvide reiniciar el servidor . Simplemente me olvidé de hacer eso y seguí probando todas las demás soluciones.
Esto funcionó para mí:
- Crea tu archivo htaccess
- Establezca $ config [''index_page''] en un vacío (config.php)
- string Set $ config [''uri_protocol''] = ''REQUEST_URI''; (config.php)
Este es mi archivo htaccess:
Options -Indexes
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
#When your application folder isn''t in the system folder
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]
# 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
Fuente:
http://taggedzi.com/articles/display/codeigniter-2-htaccess-and-friendly-urls
Estuve en esto durante 2 días. Probé todo lo posible. Acabo de decir que necesitas lo siguiente:
TIPO:
sudo nano /etc/apache2/sites-available/default
Y cambie AllowOverride None por AllowOverride All: esto le dará acceso a sus archivos .htaccess
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
# Uncomment this directive is you want to see apache2''s
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>
Y también habilite la reescritura mod en Apache:
http://.com/questions/3131236/how-do-you-enable-mod-rewrite
Espero que esto ayude, Mário
Pruebe el primer bloque de código que publicó, pero en lugar de /index.php intente usar /(site)/index.php (obv reemplazando (sitio) con el nombre de la carpeta de su sitio).
Solo necesita agregar el código siguiente en .htacess.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Esto solo es necesario en la carpeta raíz. Agregue esto a .htaccess