J'utilise le plug-in WP-API de Wordpress REST depuis des mois alors que je développais localement avec XAMPP. J'ai récemment migré mon site vers une instance EC2 et tout fonctionne correctement sauf Je reçois maintenant un message 404 avec le message suivant chaque fois que j'essaie d'accéder à un noeud final de l'API:
L'URL demandée/wordpress/wp-json/n'a pas été trouvée sur ce serveur
De jolis permaliens sont activés avec la structure suivante http://.../wordpress/sample-post/
qui fonctionne correctement lors de la navigation vers une publication spécifique dans le navigateur.
Voici quelques détails sur ma configuration:
Toute aide serait grandement appréciée, car j’ai passé plusieurs heures sur les forums SO et WP et je suis à court d’idées. Je vous remercie!
NOUVELLE MISE À JOUR
J'ai également rencontré un problème similaire dans un projet local. J'ai utilisé index.php
après l'URL de mon projet et cela a fonctionné.
http://localhost/myproject/index.php/wp-json/wp/v2/posts
S'il affiche une erreur 404, alors met à jour les liens permanents en premier (voir la section "La navigation paginée ne fonctionne pas"
Si cela fonctionne, vous devez peut-être activer mod_rewrite
sur ubuntu:
a2enmod rewrite
Sudo service Apache2 restart
L'API REST est incluse dans WordPress 4.7! Les plugins ne sont plus nécessaires, il suffit d'installer la dernière version de WordPress et vous êtes prêt.
Si vous êtes avant la 4.7:
Téléchargez le plugin ici: http://v2.wp-api.org/
installez et activez-le.
Pour obtenir tous les messages:
www.mysite.com/wp-json/wp/v2/posts
Pour la fonctionnalité de recherche, la recherche de test post ressemble à ceci:
/wp-json/wp/v2/posts?filter[s]=test
J'ai eu ce problème avec le dernier WordPress 4.7+. Dans mon cas, l’API REST ne fonctionnait qu’après que j’ai modifié le paramètre permaliens en un paramètre autre que "Plain", paramètre par défaut de mon installation.
Il s’est avéré que la configuration d’Apache posait problème.
Premièrement, j'ai supprimé le fichier .htaccess
dans le répertoire racine de wordpress.
Ensuite, j'ai navigué vers /etc/Apache2/sites-enabled
et ouvert 000-default
Toutes les variables AllowOverride
ont été définies sur Aucune, que j'ai remplacées par All
.
Cela a fait le tour!
Sous WPEngine et WP 4.9.2, il me suffisait de mettre à jour les permaliens pour que le site nouvellement installé vienne de renvoyer des appels v2 API. Ce que j'ai fait:
Je devais créer manuellement un .htaccess
, le régler sur chmod 664
et y copier les règles de permalien.
J'ai aussi joué avec
mod rewrite
a été activé via a2enmod
J'ai résolu ce problème en procédant comme suit:
Accédez à ..\Apache24\conf\httpd.conf et recherchez LoadModule rewrite_module modules/mod_rewrite.so
.
Activez le module de réécriture en supprimant la marque #
.
Remplacez tous les cas de AllowOverride None
par AllowOverride All
.
N'oubliez pas de redémarrer le serveur Apache. :)
J'avais déplacé l'installation de WordPress d'un sous-répertoire à un autre. Dans mon cas, le problème était donc dû à la configuration de WordPress dans les fichiers .htaccess
. Il essayait de rediriger chaque page sauf la page d'accueil vers l'ancien répertoire. C'était juste une question de mettre à jour olddir
à newdir
... Cela m'a fait trébucher plus d'une fois, alors j'ai pensé le mettre ici.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /olddir/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /olddir/index.php [L]
</IfModule>
# END WordPress