J'ai un problème avec les permaliens Wordpress. Je change les permaliens en jolis permaliens mais je reçois juste des 404 pour les pages maintenant. La chose étrange est que lorsque j'utilise /index.php/%postname%, les liens de page fonctionnent correctement, mais je dois me débarrasser de la partie index.php.
J'ai lu des informations sur les modifications à apporter au fichier httpd.conf, mais je ne trouve le fichier nulle part. Le fichier htaccess est correct dans la mesure où je peux le trouver, il est en dessous
# 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
D'autres idées?
Merci Emma
J'avais tout le code correct dans le fichier .htaccess
, mais il a également été complètement écrasé dans le fichier /etc/Apache2/Apache2.conf
par défaut d'Ubuntu. Modification de l'entrée pour /
et /var/www
de AllowOverride None
en AllowOverride All
, redémarrage d'Apache et tout fonctionne correctement.
Je suppose que mod_rewrite
n'est pas activé. Selon le serveur que vous utilisez, activez mod_rewrite
.
Ensuite, si vous êtes sous Linux, éditez manuellement /etc/Apache2/sites-enabled/000-default
et remplacez AllowOverride
par None
par All
(ou par le répertoire de votre site).
Ici , aux points 3 et 4 devraient être des solutions pour Windows.
Je lutte contre ce problème depuis un moment et je l’ai résolu aujourd’hui. J'ai découvert que mon mod_rewrite
n'était pas activé pendant tout ce temps. J'ai trouvé les informations sur ce lien très utiles. Il explique tout comment vérifier si le mod_rewrite
est activé et, si ce n’est le cas, comment l’activer. J'espère que cette information est utile à quiconque découvre le WP et qui a du mal à définir de jolis permaliens.
Je travaille sur un problème similaire depuis hier et j'ai finalement trouvé ma solution.
1) Assurez-vous que votre .htaccess a la permission de 666
2) Activer le mod_rewrite:
Sudo a2enmod réécrire
3) redémarrez Apache:
Sudo systemctl redémarrer Apache2
4) AllowOverride All pour le répertoire public sur /etc/Apache2/Apache2.conf
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
5) Redémarrez Apache:
Sudo systemctl redémarrer Apache2
6) Allez dans le tableau de bord Wordpress et modifiez les paramètres de permalien (si vous êtes sur postname, passez en clair, ou vice versa). Voir le site pour vérifier.
7) Accédez à nouveau au tableau de bord et modifiez les paramètres de permalien selon vos paramètres souhaités.
8) Rétablir les paramètres .htaccess à 644
Cela a fonctionné pour moi.
Utilisez-vous Names.co.uk en tant qu'hôte par hasard?
Je viens d'avoir le même problème que vous et après quelques heures de recherche sur Google, j'ai découvert qu'ils utilisaient un Zeusserveur - pas Apache- et il ne prend pas en charge la fonction Mod_ReWriteCela semble expliquer les symptômes déroutants (je n’avais pas de fichier .htaccess, mais aucune erreur n’a été signalée par Wordpress chaque fois que j’ai modifié mes préférences en permalien.)
Ils ont une solution de contournement pour Zeus, détaillée ici:
http://www.names.co.uk/support/hosting/linux_hosting/1119-wordpress_rewrite_script.html
Je me rends compte que cela se produit quelques mois après votre message original et que vous l'avez probablement déjà résolu à ce jour - mais pour tous ceux qui le trouveront à l'avenir, il serait judicieux de vérifier si votre hôte utilise Zeus ou un autre serveur non Apache.
Mise à jour: S'il vous plaît voir le code que j'ai posté ici sur une question similaire
Essayez de remplacer le code .htaccess par ceci:
# -------------------------------------------------------------------------
# Rewrite Engine options
# -------------------------------------------------------------------------
RewriteEngine On
RewriteCompatibility2 On
RepeatLimit 200
RewriteBase
RewriteRule ^/index.php$ / [NC,P,R=301]
RewriteCond %{REQUEST_URI} !/wp-admin
RewriteRule ^/(.*)/$ /index.php/$1 [NC]
# Redirect 'www.yourblogsite.com/anything/anything/index.php'
# to 'www.yourblogsite.com/anything/anything/'
RewriteRule ^/(.*)/index.php$ /$1/ [NC,P,R=301]
# -------------------------------------------------------------------------
# END REWRITES
# -------------------------------------------------------------------------
J'avais toujours les informations d'identification de connexion à un client pour lequel je devais résoudre ce problème. C'est ce que j'ai utilisé pour lui. Il s’agit d’un serveur IIS. Je ne sais pas si cela compte, mais vous pouvez l’essayer. Bonne chance, JJ
Je sais qu'il est trop tard pour répondre maintenant, mais si vous cherchez toujours cela; voici un moyen rapide pour cela:
Résolu-Comment faire pour supprimer Index.php à partir de WordPress URL sur IIS7?
Je pense que votre hôte utilise ISS. ISS utilise "URL Rewrite
" et non "mod_rewrite
", jetez donc un coup d'œil au Codex .
Les "jolis" permaliens nécessitent généralement mod_rewrite et IIS (commun sur les serveurs Windows) ne prend pas en charge mod_rewrite. (Si vous utilisez Apache 2.0.54, sous Windows, mod_rewrite peut fonctionner s'il est activé dans Apache\conf\httpd.conf.)
Vous devez faire Sudo a2enmod rewrite pour activer la réécriture de module
J'avais ce problème sur Mac OSX et ce qui suit était très utile. Il semble que, par défaut, les Mac ne soient pas prêts .htaccess et Apache ignorera le fichier jusqu'à ce que certains fichiers (spécifiés sur les liens ci-dessous) soient modifiés:
http://wordpress.org/support/topic/getting-pretty-permalinks-working-on-a-mac-105-server
J'espère que cela pourra aider!
C’est pour le serveur Apache: Bonjour d’abord, vérifiez votre hôte virtuel si vous utilisez le serveur par défaut, vérifiez le répertoire racine de wordpress
<Directory ROOT_DIR_FOR_WORDPRESS>
php_admin_flag engine on
AllowOverride All
Order allow,deny
allow from all
RewriteEngine On
RewriteOptions Inherit
Require all granted
</Directory>
vérifiez que votre fichier .htaccess dans WordPress racine est autorisé à lire, écrire (666) et contient
# 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
Activer la réécriture du mod (réécriture Sudo a2enmod - pour les utilisateurs de Linux)
Maintenant, mettez à jour la structure personnalisée permalien: /% postname% /
enregistrer et vérifier les erreurs Maintenant, il devrait fonctionner
La plupart du temps, votre problème .htaccess est remplacé par les règles de votre hôte virtuel.
Essayez de régler le paramètre htaccess sur 777, puis entrez et mettez à jour les paramètres de permalien vers ce que vous voulez, puis, si cela fonctionne, revenez en arrière et redéfinissez-le sur 644
Après avoir ajouté mon contenu, j'ai trouvé un article suggérant de supprimer le fichier .htaccess, puis d'aller à Paramètres/permaliens et supprimer le fichier index.php. L'article disait que WorPress donnerait une erreur en vous suggérant de créer le fichier .htaccess. J'ai décidé d'essayer mais ça n'a rien fait. Ce que j’ai découvert, c’est que mes permaliens fonctionnaient toujours avec le fichier .htaccess supprimé. Cela m'a intrigué au début. J'ai ouvert mon client FTP et navigué dans mes fichiers. J'ai remarqué qu'il y avait un fichier .htaccess après l'avoir supprimé. Je ne sais pas s'il s'agit de WordPress, de mon compte d'hébergement ou de ce qui l'a exactement créé, mais je sais que c'est nouveau. Ce n'est pas arrivé avant. Vous pouvez essayer cette méthode si tout le reste échoue.
Je ne pouvais pas recréer le problème dans votre question, donc je ne suis pas sûr à 100% si cela fonctionne pour vous. Cela vaut le coup d'essayer.
cordialement, Jeremy Jared