J'ai récemment installé wordpress, je suis confronté à des problèmes lorsque j'essaie de changer le format des permaliens,
quand je change le permalien de défaut en jour et heure
Default http://127.0.0.1/?p=123
Day and name http://127.0.0.1/2015/03/16/sample-post/
le lien généré ne fonctionne pas, il donne le même error 404
tout le temps ,
The requested URL /2015/03/16/post-5-problem/ was not found on this server.
Mais lorsque le type de lien permanent est défini par défaut, cela fonctionne parfaitement.
J'ai trouvé des solutions qui sont
Sudo a2enmod rewrite
Module rewrite already enabled
Une autre solution consiste à changer les autorisations de mode du fichier .htaccess en 666 (donnant l’autorisation d’écriture à wordpress du fichier .htaccess) avant de changer le permalien de défaut à un autre type,
Sudo chmod 666 /address_of_.htaccess
j'ai vérifié le fichier .htaccess
# 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
mais ce qui précède semble être correct, ce qui est inclus par le wordpress lui-même
Les deux solutions ne semblent pas fonctionner, est-ce que je dois changer quelque chose pour activer les options de permalien?
S'il s'agit d'une nouvelle installation du serveur Web, il est possible que les règles .htaccess ne soient pas autorisées par défaut. Pour résoudre ce problème, éditez-vous httpd.conf (généralement dans/etc/Apache2), recherchez
<Directory "path/to/your/document/root">
# ....
AllowOverride None
# ....
</Directory>
et changer
AllowOverride None
à
AllowOverride All
Ensuite, redémarrez votre serveur Web et réessayez.
Réinitialisez le lien permanent que vous souhaitez à partir de la zone d'administration wordpress et ajoutez ce code dans htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
ErrorDocument 404 /index.php?error=404
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Maintenant, vérifiez avec les articles de blog et les pages.
Merci,
Vous recevez cette erreur car votre serveur Web ne peut pas trouver le fichier et ne transmet pas la demande à Wordpress.
Vous devez ajouter des règles de réécriture pour votre Wordpress, et les instructions à ce sujet dépendent de votre logiciel de serveur Web (Apache, nginx, etc.).
Exemple avec nginx:
location / {
try_files $uri $uri/ /index.php?$args;
}
Ce qui signifie littéralement: essayez d'ouvrir d'abord "/ 2015/03/16/post-5-problem /" dans le système de fichiers. S'il n'existe pas, essayez d'ajouter une barre oblique, si cela ne permet pas de passer la demande d'indexation. php (qui est le fichier principal de Wordpress) avec les arguments.
Activer le module de réécriture ne suffit pas, vous devez ajouter des règles de réécriture.