web-dev-qa-db-ja.com

Wordpress REST AP​​I(wp-api)404エラー

XAMPPを使用してローカルで開発している間に、数か月間Wordpress RESTプラグインWP-APIを使用しています。最近サイトをEC2インスタンスに移行しましたが、すべて正常に動作しています除く APIのエンドポイントにアクセスしようとすると、次のメッセージを含む404が表示されます。

要求されたURL/wordpress/wp-json /はこのサーバーで見つかりませんでした

かなりのパーマリンクが有効になっています次の構造http://.../wordpress/sample-post/で、ブラウザで特定の投稿に移動するときに正常に動作します。

私のセットアップについての詳細は次のとおりです。

  • Wordpress 4.4.1
    • マルチサイトではない
  • WP REST AP​​Iプラグイン2.0-beta9
  • Apache 2.2.22
  • Ubuntu 12.04.5

SOとWPのサポートフォーラムを数時間行っており、アイデアが不足しているので、どんな助けでも大歓迎です。ありがとうございました!

31
dsal1951

更新された新しい方法

地元のプロジェクトでも同様の問題に直面しました。 プロジェクトurlの後にindex.phpを使用しましたが、動作しました。

http://localhost/myproject/index.php/wp-json/wp/v2/posts

404エラーが表示された場合は 最初にパーマリンクを更新(「ページナビゲーションが機能しない」を参照

動作する場合は、多分、ubuntuでmod_rewriteを有効にする必要があります。

a2enmod rewrite
Sudo service Apache2 restart

Installation

REST AP​​IはWordPress 4.7に含まれています!プラグインは不要になりました。最新バージョンのWordPressをインストールするだけで準備完了です。

4.7より前の場合:

  1. ここからプラグインをダウンロードします: http://v2.wp-api.org/

  2. インストールしてアクティブにします。

使用法

すべての投稿を取得するには:

www.mysite.com/wp-json/wp/v2/posts

検索機能の場合、テスト投稿の検索は次のようになります。

/wp-json/wp/v2/posts?filter[s]=test
83
Jitendra Popat

最新のWordPress 4.7+でこの問題が発生しました。私の場合、REST AP​​Iは、パーマリンクの設定をインストールのデフォルト設定である「プレーン」以外に変更した後にのみ機能しました。

24
dlaub3

WPEngineおよびWP 4.9.2では、パーマリンクを更新するだけで、新しくインストールされた新しいサイトがv2 API呼び出しを返すようになりました。私がしたこと:

  1. サイトを作成
  2. http://yoursitename.wpengine.com/wp-json/wp/v2/posts を参照します。
    • 404を取得
  3. 管理者、設定、パーマリンクに移動し、「投稿名」を選択します
  4. [変更を保存]をクリックします
  5. http://yoursitename.wpengine.com/wp-json/wp/v2/posts を参照します。
    • 成功。ページにJSON応答が表示されます
14
Andy Roberts

Apacheの構成に問題があることが判明しました。

まず、ルートwordpressディレクトリ内の.htaccessファイルを削除しました。

次に、/etc/Apache2/sites-enabledに移動して000-defaultを開きました

すべてのAllowOverride変数がNoneに設定されていたので、Allに置き換えました。

それはトリックをしました!

12
dsal1951

手動で.htaccessを作成し、chmod 664に設定し、それにパーマリンクルールをコピーする必要がありました。

私もをいじくりました

  • 設定>パーマリンク
  • [保存]をクリックした後、パーマリンクページの下部にあるコードを使用して.htaccessを手動で更新する
  • 他の回答の1つとして「index.php」を追加すると、
  • mod rewritea2enmodを介して有効になっていることを確認する
2
Jacksonkr

次の手順でこの問題を解決しました。

  1. ..\Apache24\conf\httpd.confに移動し、LoadModule rewrite_module modules/mod_rewrite.soを検索します。

  2. #マークを削除して、書き換えモジュールを有効にします。

  3. AllowOverride NoneのすべてのケースをAllowOverride Allに置き換えます。

  4. Apacheサーバーを再起動することを忘れないでください。 :)

1
Patriotic

WordPressインストールをサブディレクトリから別のディレクトリに移動したので、私の場合、問題は.htaccessファイルのWordPress構成に起因していました。ホームページを除くすべてのページを古いディレクトリにリダイレクトしようとしていました。 olddirnewdirに更新するだけの問題でした...これは私を何度もつまずかせたので、ここに置くと思いました...

# 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
0
mrtnmgs