J'ai créé un site wordpress et hébergé sur le serveur nginx, et settings-> Permalinks
et cliqué sur save changes
. Cela crée un fichier .htaccess à la racine du site.
Sur un serveur Apache, c'est logique et cela vaut la peine de créer un fichier .htaccess, mais qu'est-ce que cela a à voir avec nginx server? Est-il prudent de supprimer le fichier .htaccess de la racine de mon site Web?
WordPress essaie de détecter le type du serveur Web en se jetant dans la variable globale $_SERVER['SERVER_SOFTWARE']
.
La vérification Apache est la suivante:
$is_Apache = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false
|| strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false);
et le contrôle Nginx est:
$is_nginx = (strpos($_SERVER['SERVER_SOFTWARE'], 'nginx') !== false);
Vous devriez donc d'abord vérifier:
var_dump( $_SERVER['SERVER_SOFTWARE'] );
pour voir si c'est correct.
Voici quelques solutions de rechange:
Il est également possible d'éviter que le fichier .htaccess
ne soit créé avec:
add_filter( 'flush_rewrite_rules_hard', '__return_false' );
pour éviter la save_mod_rewrite_rules()
à exécuter.
Dans la fonction save_mod_rewrite_rules()
, il y a une vérification got_mod_rewrite()
avant la mise à jour du .htaccess
. Il est également possible d'utiliser:
add_filter( 'got_rewrite', '__return_false' );
pour éviter que insert_with_markers()
ne soit exécuté, le fichier .htaccess
est écrit.