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)
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()
.