Habilitar mod_rewrite de Apache2 en Ubuntu

htaccess-image

Por fin he logrado hacer que desaparezca el segmento index.php de la url de mi servidor apache bajo el frameword CodeIgniter, si antes la URL se veía:

http://localhost/MundoPatitas/index.php/crear_cuenta

ahora a quedado en esto

http://localhost/MundoPatitas/crear_cuenta

Mucho mas vistoso si se podrán haber dado cuenta, para ello debemos hacer modificaciones tanto a nivel servidor (apache) y a nivel de framework, para ello debemos hacer lo siguiente:

1.- Primero habilitamos el Mod_Rewrite escribiendo en consola:

$sudo a2enmod rewrite

2.- Debemos modificar todos los campos que dicen “AllowOverride None” por “AllowOverride All” del siguiente documento:

$sudo gedit /etc/apache2/site-enable/000-default

3.- Reiniciamos apache

$sudo /etc/init.d/apache2 restart

Ahora que tenemos activado el Mod_Rewrite tenemos que hacer las configuraciones que respectan a nuestro framework.

1.- Nos vamos al archivo de configuración que se encuentra ubicado en el directorio “application/config/config.php” y cambiamos los siguientes campos:

$config[‘index_page’] = “index.php”;

El cual debería quedarnos así:

$config[‘index_page’] = “”;

2.- Y finalmente en el directorio raíz, que en mi caso es “/var/www/MundoPatitas” debemos crear un archivo llamado “.htaccess” el cual debe tener el siguiente contenido:

# Customized error messages.

ErrorDocument 404 /index.php

# Set the default handler.

DirectoryIndex index.php

# Various rewrite rules.

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

Con esto ya deberíamos tener habilitado el sistema para poder sacar el TÓXICO index.php de nuestra URL, espero les sirva pues me costó su buenas horas en pillar la solución, saludos 😀

PD: si por alguna razón, al levantar apache les arroja lo siguiente:

apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

La solución está en agregar al documento apache2.conf la siguiente línea al principio del documento:

ServerName localhost

Fuentes:

Comments

  1. Gracias por el aporte, me salvaste de un apuro.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: