Je viens d'installer un blog d'amis sur ma pile LAMP, sur laquelle mod_rewrite est activé (je l'utilise pour des URL propres sur mes installations Drupal sur le même serveur). Pour une raison quelconque, WordPress (3.0.3) ne reconnaît pas que mod_rewrite est activé. Dans le menu Permaliens, il affiche les options pour les permaliens PATHINFO (avec index.php précédant la chaîne d’URL).
Mon correctif pour le moment consistait simplement à utiliser le champ Structure personnalisée et à entrer ce que je voulais moins à la partie index.php que WordPress semble vouloir insérer, ce qui fonctionne, mais j'aimerais obtenir un correctif pour ce problème.
Est-ce une anomalie 3.0.3? Je n'ai pas eu beaucoup de temps pour étudier la configuration de mon serveur, mais toute aide serait très appréciée.
Le résultat de $ _SERVER ['SERVER_SOFTWARE'] est WebServerX
Cela ressemble à votre problème - consultez cette ligne dans wp-includes/vars.php
:
/**
* Whether the server software is Apache or something else
* @global bool $is_Apache
*/
$is_Apache = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false || strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false);
Je pense que vous devrez remplacer cette variable manuellement, soit dans un plugin, soit dans le functions.php
de votre thème:
global $is_Apache;
$is_Apache = true;
Accessoires de @John P Bloch:
La seule fois où il ajoutera automatiquement 'index.php' à un lien permanent, c'est si $ is_Apache renvoie false.
Vous pouvez également ajouter la ligne de code suivante à votre fichier functions.php:
add_filter( 'got_rewrite', '__return_true', 999 );
Nous faisons cela pour que WordPress fonctionne bien avec nginx.