web-dev-qa-db-ja.com

ワードプレスWP - JSONプレフィックスの問題

私はWordpress 4.9以降を使用しています。これはデフォルトでREST apiが有効になっていると考えています。私のパーマリンクはMonth and Nameに設定されていますそしてそして私は私のサイト用にFoxhound Reactテーマを使用しています。

今私の残りのAPIはで利用できるはずです

http://example.com/index.php/wp-json/wp/v2/posts

しかしそれで利用できる

http://example.com/index.php/wp-json/wp/v2/posts

これが私のテーマがAPIからデータを取得しようとすると404エラーになる理由です。

image error 

今私の質問は私がどのように私がRESTを_ /index.php接頭辞なしで利用可能にするかです

私は手動でランプサーバを使ってaws ubuntu microにすべてをデプロイしました。 Wordpressファイルはルートフォルダ(/var/www/html/)にあります

また、私は以下の手順でmod_rewriteモジュールを試しました。

a2enmod rewrite
Sudo service Apache2 restart

これが私の.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
1
Faysal Ahmed

あなたはhttp://example.com/...../postsの代わりにhttp://example.com/index.php/...../postsのようなあなたのURLを取得しようとしているかもしれません

それはあなたのサーバーの問題です。あなたはLightpdサーバを使っているかもしれないので、あなたのサーバはそれをサポートしていません。

Lightpdサーバーの場合は、lightpd.conf内のrewrite_onceを編集できます。また、あなたのサーバーがhtaccessをサポートしている場合は、この行を追加してurlを書き換えることができます。

"^(.+)/?$" => "/index.php/$1"

これは、lightpdとこの正規表現用で、htaccess用に使用できます。

更新: あなたのサーバーがhtaccessをサポートしていると言ったように、あなたの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]
1
AA Shakil

あなたはあなたのウェブサイトのパーマリンク構造を設定する必要があります。

  1. ジャンプ 設定>パーマリンク
  2. カスタム構造体 からindex.phpを削除します。
  3. Save Changesをクリックしてください。

それはあなたのパーマリンク構造を再生成します。 http://example.com/index.php/wp-json/wp/v2/postsで投稿にアクセスできるようになります

更新しました:

以下のような.htaccessコード:

# 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

注:dev.freshを自分のドメインに変更してください。

1
maheshwaghmare