martes, 5 de enero de 2021

Permalinks de Wordpress no funcionan correctamente en Apache2

 

Wordpress usa por defecto URLs del tipo http://lasendadelwordpress.com/?p=123. Esta estructura de URL  no son recomendables para el SEO. Por eso la mayoria de los sitios de Wordpress usan Permalinks, que es un termino que se para los URLs amigables para el SEO. Estos Permalinks pueden contener información del post, categoria, etiquetas y el título, permitiendo el uso de palabras clave dentro de la URL. 

Es posible activar Permalinks directamente en un sitio Wordpress simplemente accediendo a Settings > Permalinks y ahí escogiendo el tipo de URL que queremos: 




Problemas con los Permalinks


Una vez se han configurado los Permalinks en Wordpress es posible que estos no funcionen correctamente en servidores web con Apache2 o que la web no sea accesible y muestre un error tipo: 


Not Found

The requested URL was not found on this server.


Apache/2.4.25 (Debian) Server at www.lasendadeladmin.com Port 80


Esto se deve a que Permalinks requiere de tres elementos de configuración de servidor para funcionar correctament:

- Apache2 mod_rewrite

- Configuración del Site: AllowOverwrite

- Modificación .htacess 


Apache2 mod_rewrite 

Es posible habilitar cualquier módulo de apache usando el comando a2enmod. Para habilitar mod_rewrite tan solo ejecuta el comando: 

$ sudo a2enmode rewrite 

Si el módulo ya esta activado, recibiras un mensaje de sistema indicandolo. 

Una vez activado, es necesario reiniciar Apache para se aplique cualquier cambio en la configuración. Es necesario ejecutar el comando: 

$ sudo service apache2 restart

El servidor esta preparado para recibir las reglas de rewrite.


AllowOverwrite 

Por defecto Apache no permite el uso del fichero .htacess para los sitios web, por lo que es necesario editar la configuración de virtual host para pemitirlo. Es necesario añadir el siguiente código en el ficher /etc/apache2/sites-available/tusitio.conf : 

<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>

Una vez actualizado es necesario recargar el Apache: 

$ sudo service apache2 reload


.htaccess 

Al activar los Permalinks, el mismo Wordpress te indica que es necesario añadir un código en el fichero .htaccess


Este fichero tiene que estar en la raiz del sitio de Wordpress (por ejemplo /var/www/html) . Es posible que este fichero no exista, de ser así solo es necesario crearlo y copiar el código dentro. 

$ sudo vi /var/www/html/.htaccess 





No hay comentarios:

Publicar un comentario