Estimado Navegante. Si has llegado hasta aquí ya conocerás los beneficios que tiene un permalink adecuado (un mal ejemplo) así que al grano. Vamos a ver que problemas pueden surgir al activarlo.
Supongamos un Apache 1.3 sobre Linux. Por defecto, al activar los permalinks en Wordpress las direcciones apuntan a un Not Found o error 404. No es problema de Wordpress, sino de la configuración del server. Vamos a ver que cosas hay que comprobar:
En alguna carpeta madre (mejor en la raíz) del Wordpress debe existir un archivo .htaccess
El usuario que corra el apache debe tener permiso de escritura sobre el archivo .htaccess. Por defecto el archivo tiene una configuración 644 podemos ampliarla a 664 como en mi caso para que el grupo tenga permiso de escritura o a 666 si sabemos lo que hacemos.
chmod 664 /ruta/.htaccess
Si wordpress tiene permiso sobre el archivo habrá añadido el siguiente código:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Si no quieres dar mas persisos de los necesarios puedes dejarlo como solo lectura y añardir el codigo a mano. Esto es lo mas recomendable.
Si lo anterior no funciona hay que comprobar que el htaccess se emplea realmente.
En la configuración del apache (/etc/apache/httpd.conf) debe aparecer la directiva:
AllowOverride All
Si se usan VirtualHost es mejor ponerlo dentro del host, asi:
<VirtualHost *>
DocumentRoot /ruta/siloco
ServerName siloco.es
<Directory /ruta/siloco>
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Después de esto hacemos:
#Apachectl configtest (si todo OK:)
# Apachectl restart
Si todo lo anterior no funciona debes comprobar que el modulo mod_rewrite esta activo. En la configuración del apache tendrás que descomentar la siguiente línea o añadirla si no la encuentras:
LoadModule rewrite_module modules/mod_rewrite.so
Es facil que el modulo ya este cargado y nos de una advertencia como esta:
[warn] module rewrite_module is already loaded, skipping
Si no, repetimos el:
#Apachectl configtest
# Apachectl restart
Hay 4 formas de entrar a un post, con o sin las www y con o sin la ultima barra ” / “. Si de alguna de estas formas falla tienes un canonicalization problem, puedes seguir a Adseok para arreglarlo. En las ultimas versiones de Wordpress este problema ya esta arreglado.
Puedes confundir este problema con otro de la configuracion de apache. Si el virtual host solo reconoce el dominio sin las www (si solo tienes una linea en httpd.conf que ponga ServerName siloco.es) debes añadir el alias con las www:
ServerAlias www.siloco.es
Ya debería funcionar bien después de todo esto. No os preocupéis por los enlaces antiguos. Se redirigen automáticamente.
Creo que he repasado los problemas mas frecuentes que se pueden tener, el mio fue sobre el AllowOverride. Si habéis tenido mas problemas, comentarlos por favor.
Fuentes:
Categories
ArchivesLinksMeta |