J'utilise Wordpress 4.9+ qui, je crois, est activé avec REST api par défaut. Mes permaliens sont définis sur Month and Name
Et j'utilise le thème Foxhound React pour mon site.
Maintenant, mon api de repos devrait être disponible dans
http://example.com/index.php/wp-json/wp/v2/posts
Mais sa disponible dans
http://example.com/index.php/wp-json/wp/v2/posts
C’est la raison pour laquelle mon thème reçoit une erreur 404 lorsqu’il tente d’obtenir des données de l’API.
Maintenant, ma question est de savoir comment rendre mon REST disponible sans le préfixe /index.php
J'ai déployé manuellement tout dans aws ubuntu micro avec un serveur Lamp. Les fichiers Wordpress sont dans le dossier racine (/var/www/html/
)
J'ai aussi essayé le module mod_rewrite en procédant comme suit
a2enmod rewrite
Sudo service Apache2 restart
Et ceci est mon 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
Vous essayez peut-être d’obtenir votre URL telle que http://example.com/...../posts
au lieu de http://example.com/index.php/...../posts
C'est le problème de votre serveur. Votre serveur ne le prend pas en charge car vous pouvez utiliser le serveur Lightpd
.
Vous pouvez modifier rewrite_once
dans lightpd.conf s'il s'agit du serveur lightpd. De plus, si votre serveur supporte htaccess, vous pouvez ajouter cette ligne pour réécrire l'URL.
"^(.+)/?$" => "/index.php/$1"
Ceci est pour lightpd et cette expression rationnelle que vous pouvez utiliser pour htaccess.
Mise à jour: Comme vous avez dit que votre serveur supporte htaccess, utilisez ce code dans votre htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index.php
RewriteRule ^index.php$ http://example.com/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Vous devez définir la structure de lien permanent de votre site Web.
index.php
de la Structure personnalisée .Save Changes
.Il régénère votre structure permalien. Et vous pourrez accéder aux articles avec http://example.com/index.php/wp-json/wp/v2/posts
Mis à jour:
.htaccess
code comme ci-dessous:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /dev.fresh/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /dev.fresh/index.php [L]
</IfModule>
# END WordPress
Remarque: Modifiez dev.fresh
avec votre propre domaine.