Arreglar los permalinks en Wordpress y Ubuntu Server 14.04

Por más que digan que es sencillo, migrar una página en wordpress siempre trae uno que otro problema, y para mí, el más frecuente es: Error cambiando los Permalinks.

El síntoma: 

Luego de hacer la migración, y que la home page funcione, al tratar de ir a una página aparece un error 404 not page found. Al revisar todas las páginas, la dirección URL está perfecta pero ¿Por qué no sirve?. 

Además, al intentar cambiar los permalinks, todo parece funcionar, pero la única forma en la que funciona es cuando se usa el id de la página o cuando se pone /index.php/%postname%/  en el "custom structure". La idea es intentar estas soluciones una a una, es decir, intentar la primera y probar, si no, intentar la segunda, y si no, la tercera (no sé si esto es lo más correcto, pero fué lo que me funcionó)

La solución

  1. Archivo .htaccess: Este archivo es el primer paso. El .htaccess se encuentra en la misma carpeta en la que está instalado wordpress. Al cambiar seleccionar el tipo de Permalinks este archivo se va a actualizar. En algunos casos wordpress indica que este archivo no se puede escribir y en ese momento aparecen varias líneas de código que puedes copiar y pegar en ese archivo. Opcionalmente puedes modificar los permisos del archivo y hacer que wordpress lo actualice por si mismo. Éste es el código que generalmente agrega en el archivo .htaccess.

    # BEGIN WordPress
    
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    # END WordPress
    
    
  2. Habilitar mod_rewrite en Apache server: Esto es un poco más serio ya que . Tienes que entrar por terminal (consola, ssh) al servidor. Luego ejecuta estos comandos

    Instala el módulo
    sudo a2enmod rewrite
      
    Reinicia apache
    sudo service apache2 restart
    Habilita el uso del módulo por los archivos .httaccess. Esto se logra editando el archivo 000-default.conf de apache. (Atención, porque la dirección del archivo ha cambiado en apache 2.4 y en ubuntu 14.04)

    sudo nano /etc/apache2/sites-available/000-default.conf
    Busca la línea: "DocumentRoot /var/www/html" y agrega estas líneas de código:


        AllowOverride All

    Guarda y cierra el archivo, (en nano Ctrl+X) .

    Reinicia apache
    sudo service apache2 restart
  3. Modificar la configuración de apache: En muchas páginas que visité hablaban del archivo httpd.conf. Sin embargo, parece que en la versión 2.4 de apache ya no existe y fue convertido en el archivo apache2.conf ubicado en /etc/apache2/. Este cambio fue lo que me motivó a escribir este post. Los cambios que deben hacerse en este archivo son:

    Abre el archivo apache2.conf
    sudo nano /etc/apache2/apache2.conf

    Busca las lineas OptionsFollowSymLinks and change the AllowOverride None por AllowOverride All



    Restart the apache server
    sudo service apache2 restart
Y eso es todo lo que hice para que funcionara. Luego fuí al Dashboard  de Wordpress, actualicé los permalinks y todo funcionó de maravilla.

Comentarios

Entradas más populares de este blog

Solución problema Kdenlive en Ubuntu 11.10 ("MLT's SDL module not found")

La guitarra exclusiva de Frank Iero: la Phant-O-Matic

Dia de My Chemical Romance