Si acabas de instalar un nuevo WordPress o has cambiado las opciones de enlaces permanentes (permalinks) te darás cuenta que las reglas que WordPress inserta en el fichero .htaccess han cambiado. Parece que se introdujo en la versión 3.0, así que es muy reciente.
Las reglas que habitualmente añadía WordPress hasta ahora eran estas:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Con estas reglas obtenías los enlaces permanentes humanos, también conocidos como «pretty permalinks», nos ha acompañado durante unos cuantos años, pero ahora la cosa ha cambiado
Las nuevas reglas de enlaces permanentes de WordPress
La verdad es que tampoco es para volverse loco, porque en realidad no vas a notar nada si lo cambias, pero ahora WordPress incluye una línea más en las reglas de enlaces permanentes, esta:
RewriteRule ^index\.php$ - [L]
Como quedaría sería así …
Para sitios instalados en el directorio raiz:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Para sitios instalados en un subdirectorio:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /subdirectory/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /subdirectory/index.php [L] </IfModule> # END WordPress
¿Qué hace la nueva regla?
Parece que la nueva línea es la solución a un problema con la directiva ‘mod_rewrite
‘ de Apache, pues sin hacer este cambio se revisaba la existencia de ‘index.php
‘, algo innecesario para WordPress. En consecuencia es una actualización de optimización.
Actualizar las reglas de htaccess
La verdad es que en realidad no es obligatorio pero si recomendable hacerlo, por cuestiones de optimización. Y puedes añadirlo en cualquier instalación existente.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
De hecho lo correcto del todo sería:
RewriteRule ^index.php$ – [L]
Notese la barra invertida antes del punto.
Saludos!
buenas… una pregunta…
¿con la actualización de wordpress a 3.04 es suficiente? o ¿tienes que hacerlo manualmente?
gracias…
A mi tambien me gustaria saber si es necesario hacerlo manualmente o ya se encarga Wordpress en su ultima version ya que no lo tengo instalado.
Bueno yo tengo actualizado mi wordpress con la version 3.0.4 y al revisar el htaccess, encontre la linea ya insertada.
Yo revise y ya lo tengo insertado en mi .htaccess
Hola ¡¡ acabo de actualizar a 3.1 y los friendly ya no me van. Solo funcionan los permalinks en 'numeric'. Qué puedo hacer ? puedo volver a 3.0.4 o qué hago? cuando entro a una subpágina me sale error 404. Esto que leo del htaccess me sirve ? Saludo a todos ¡¡
La estructura de htacces ha cambiado un poco, prueba a borrar el actual y volver a generarlo desde Ajustes – > Estructura de los enlaces
Fernando, ante todo gracias por responder. He entradoa ajustes y he cambiado a month and name, day and name y nada. Solo funciona con numeric. Dónde encuentro una versión superor a 3.1 que ya traiga esto listo ? en definitiva la 3.1 le falla lo de fiendly links.
Amigo Fernando, tengo el mismo problema que "Entuoido", en cuanto cambio la estructura de enlaces permanentes a "/%postname%/, e intento visionar la página me da el error 404.
Me han comentado que si el hostting fuese linux no tendría ese problema… he comprobado el .htaccess y esta perfecto.
¿Que hago…?
no se ha solucionado el problema, he buscado y buscado alguna solucion pero no me funciona nada, he optado por poner /%year%/%category%/%postname%.
al menos no me sale la pagina de error 404…
espero alguna solucion
necesito ayuda, estoy en godaddy, y tengo problemas al iniciar la selección de administrador ya que me da un error …
http://misitio.com/wp-admin/?prog_id=GoDaddy&………
y cuando le pongo las http://www.misitio.com/wp-admin/ …. ingresa y me pide usuario y password pero de ahí no pasa
ley que es en el archivo htaccess … pero esta igual como este articulo al inicio … por defecto … alguien me puede ayudar …
Gracias por la información Fernando
Hola! he llegado aquí porque estoy desesperado buscando alguna solución, cuando voy a mis opciones de enlace permanentes tengo el siguiente error:
Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/:/usr/lib/php:/tmp) in /home/a7218680/public_html/wp-admin/options-permalink.php on line 118
La verdad no se que es, soy nuevo en wordpress, el problema se muestra ahora que cada vez que trado de ingresar a una pagina de mi web, me tira la siguiente direccion:
midominio.com/http://midominio.com/pagina-prueba
porque se repite 2 veces automaticamente mi dominio?? ayuda por favor 🙁
Hola Fernando,
He hecho los cambios y siguen sin funcionar los enlaces permanentes, mi wordpress está en una plataforma de google cloud, la cual reinicie el servidor que es un apache en linux
Pues no debería dar problemas.
Borra (o renombra) el htaccess actual y ve a Ajustes > Enlaces permanentes de tu WP para que se genere un nuevo
Gracias Fernando por contestar, esto que me comentas ya lo hicimos y no logramos que funcione, lo que vimos es que la instancia se configuró mal y rompió los enlaces, así que decidimos crear una nueva y logramos hacer que los enlaces permanentes funcionaran bien, muchas gracias nuevamente. Saludos desde México!!