web-dev-qa-db-fra.com

WordPress continue à écrire des règles de réécriture sur .htaccess

WordPress continue d'écrire des règles de réécriture dans .htaccess encore et encore jusqu'à ce que cela cause une erreur et oblige le serveur à renvoyer 500 erreur de serveur interne ...

c'est-à-dire que mon .htaccess est une série de

# 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
# 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

répété maintes et maintes et maintes fois.

En soi, ce n'est pas un problème majeur (sauf que mon .htaccess passera à plusieurs MB, ce qui ralentira considérablement le site). Mais de temps en temps, il se peut qu'il y ait une foutaise dans le fichier .htaccess qui détruit le site (500 Erreur interne du serveur)

1
OC2PS

Je ne sais pas pourquoi cela se produit, mais vous pouvez arrêter tout accès en écriture à votre .htaccess avec un simple filtre:

add_filter( 'flush_rewrite_rules_hard', '__return_false' );

Ni WordPress ni aucun plugin appelant flush_rewrite_rules() n'écrira quelque chose dans le fichier maintenant. D'autres méthodes d'accès et de modification du fichier continueront de fonctionner, par exemple insert_with_markers().

4
fuxia