Cómo evitar que WordPress cambie el archivo .htaccess

Si eres lector veterano del blog sabrás que hace ya un tiempo estuve explicando por qué es mala idea dejar que WordPress haga cambios sin tu control en el archivo .htaccess.

Bien, pues hoy vamos a añadir una vuelta de rosca más, y añadir a tu arsenal de trucos para .htaccess uno más, precisamente también para evitar que WordPress haga cambios al archivo .htaccess que escapen de tu control.

Lo que vamos a ver no anula lo dicho en el artículo sobre lo malo que es que WordPress cambie el archivo .htaccess, y de hecho deberías leerlo para conocer los «por qués». Simplemente te ofrece un método alternativo, que además es muy chulo.

El método más efectivo para evitar que WordPress cambie el .htacccess

En este artículo te voy a ofrecer un modo super efectivo para evitar que WordPress haga cambios, modifique el archivo .htaccess.

Y sin hacerte esperar más … el código es así:

# EVITAR MODIFICACIONES DE WP
<IfModule mod_ignorar_wordpress.c>

# 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

</IfModule>

¿Qué hace este código?

Lo mejor de este bloque de código es que en realidad no hace nada.

En la primera línea usamos <IfModule> para comprobar si existe un módulo de Apache que no existe, nos lo hemos inventado (mod_ignore_wordpress).

Y como el módulo ni existe ni existirá en el servidor, Apache ignora todo lo que haya dentro del contenedor <IfModule>.

De este modo, el efecto de estas reglas es que no hace nada lo que haya dentro.

Luego, dentro del contenedor <IfModule> exterior, están las reglas por defecto añadidas automáticamente por WordPress. Las que WordPress añade a tu archivo .htaccess cuando activas enlaces permanentes.

Estas reglas interiores son las que WordPress encontrará y actualizará automáticamente si creo que tiene que hacerlo.

Y como las reglas se ignoran, puedes tener cualquier regla de WordPress en cualquier otro sitio del archivo .htaccess, y no se verán afectadas por ninguna modificación automática de WordPress.

La clave a la hora de usar este código de manera efectiva es asegurarte de que tus reglas personalizadas para WordPress NO se parezcan las reglas de WordPress por defecto.

Y para conseguirlo, simplemente recuerda no incluir estas líneas antes y después de tus reglas personalizadas para WordPress:

# BEGIN WordPress

# END WordPress

No incluyas nada parecido a esas líneas antes y después de tus reglas personalizadas para WordPress.

Por ejemplo, podrías usar # PARA WORDPRESS y omitir cualquier comentario de cierre, así:

# PARA WORDPRESS
<IfModule mod_rewrite.c>
	RewriteBase /
	RewriteRule ^index\.php$ - [L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	# Cualquier reglas personalizada, etc.
	RewriteRule . /index.php [L]
</IfModule>

Todo junto te quedaría tal que así:

# EVITAR MODIFICACIONES DE WP
<IfModule mod_ignora_wordpress.c>

# 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

</IfModule>

# PARA WORDPRESS
<IfModule mod_rewrite.c>
	RewriteBase /
	RewriteRule ^index\.php$ - [L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	# Cualquier regla personalizada, etc.
	RewriteRule . /index.php [L]
</IfModule>

Fíjate que las líneas primera y última de cada bloque de reglas son únicas. WordPress reconocerá y modificará el primer bloque, el que empieza por # BEGIN WordPress y termina en # END WordPress, e ignorará tus reglas personalizadas.

De puro sencillo es hasta bonito, y suena casi a cachondeo que funcione tan bien un truco tan simple.

Espero que hayas aprendido algo, y vuelvo a recomendarte que eches un vistazo antes al artículo sobre por qué es mala idea que WordPress cambie automáticamente el archivo .htaccess, para entender la necesidad – o no – de este truco.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(4 votos, promedio: 4.8)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

1 comentario en “Cómo evitar que WordPress cambie el archivo .htaccess”

  1. Buen día Fernando

    Ante todo gracias por ayudawp

    A raíz de éste post he leído según recomiendas https://ayudawp.com/problema-wordpress-modifique-automaticamente-htaccess/ y también https://ayudawp.com/todo-sobre-htaccess/ y me surgen un par de preguntas, abusando de tú generosidad

    1) La ejecución práctica de éste truco, según entiendo ¿consistiría en sustituir en nuestro archivo .htaccess (accediendo por cpanel, por ejemplo) el código con las reglas de wordpress por el código que propones al final del artículo?

    2) La forma de conseguir lo mismo que propones en el método 2 de tú artículo https://ayudawp.com/problema-wordpress-modifique-automaticamente-htaccess/ se ve facílisimo de implementar para mí que uso Code Snippets. ¿Es preferible el truco que propones en éste artículo?
    Lo digo sobre todo por el miedo a tocar .htaccess que da después de leer tus anteriores post.

    3) ¿Se podría decir que el truco que propones en éste artículo es un ejemplo del método 3 que propones en https://ayudawp.com/problema-wordpress-modifique-automaticamente-htaccess/?

    Un saludo y feliz día

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido