XAMPPを使用してローカルで開発している間に、数か月間Wordpress RESTプラグインWP-APIを使用しています。最近サイトをEC2インスタンスに移行しましたが、すべて正常に動作しています除く APIのエンドポイントにアクセスしようとすると、次のメッセージを含む404が表示されます。
要求されたURL/wordpress/wp-json /はこのサーバーで見つかりませんでした
かなりのパーマリンクが有効になっています次の構造http://.../wordpress/sample-post/
で、ブラウザで特定の投稿に移動するときに正常に動作します。
私のセットアップについての詳細は次のとおりです。
SOとWPのサポートフォーラムを数時間行っており、アイデアが不足しているので、どんな助けでも大歓迎です。ありがとうございました!
更新された新しい方法
地元のプロジェクトでも同様の問題に直面しました。 プロジェクトurlの後にindex.php
を使用しましたが、動作しました。
http://localhost/myproject/index.php/wp-json/wp/v2/posts
404エラーが表示された場合は 最初にパーマリンクを更新(「ページナビゲーションが機能しない」を参照
動作する場合は、多分、ubuntuでmod_rewrite
を有効にする必要があります。
a2enmod rewrite
Sudo service Apache2 restart
REST APIはWordPress 4.7に含まれています!プラグインは不要になりました。最新バージョンのWordPressをインストールするだけで準備完了です。
4.7より前の場合:
ここからプラグインをダウンロードします: http://v2.wp-api.org/
インストールしてアクティブにします。
すべての投稿を取得するには:
www.mysite.com/wp-json/wp/v2/posts
検索機能の場合、テスト投稿の検索は次のようになります。
/wp-json/wp/v2/posts?filter[s]=test
最新のWordPress 4.7+でこの問題が発生しました。私の場合、REST APIは、パーマリンクの設定をインストールのデフォルト設定である「プレーン」以外に変更した後にのみ機能しました。
WPEngineおよびWP 4.9.2では、パーマリンクを更新するだけで、新しくインストールされた新しいサイトがv2 API呼び出しを返すようになりました。私がしたこと:
Apacheの構成に問題があることが判明しました。
まず、ルートwordpressディレクトリ内の.htaccess
ファイルを削除しました。
次に、/etc/Apache2/sites-enabled
に移動して000-default
を開きました
すべてのAllowOverride
変数がNoneに設定されていたので、All
に置き換えました。
それはトリックをしました!
手動で.htaccess
を作成し、chmod 664
に設定し、それにパーマリンクルールをコピーする必要がありました。
私もをいじくりました
mod rewrite
がa2enmod
を介して有効になっていることを確認する次の手順でこの問題を解決しました。
..\Apache24\conf\httpd.confに移動し、LoadModule rewrite_module modules/mod_rewrite.so
を検索します。
#
マークを削除して、書き換えモジュールを有効にします。
AllowOverride None
のすべてのケースをAllowOverride All
に置き換えます。
Apacheサーバーを再起動することを忘れないでください。 :)
WordPressインストールをサブディレクトリから別のディレクトリに移動したので、私の場合、問題は.htaccess
ファイルのWordPress構成に起因していました。ホームページを除くすべてのページを古いディレクトリにリダイレクトしようとしていました。 olddir
をnewdir
に更新するだけの問題でした...これは私を何度もつまずかせたので、ここに置くと思いました...
# 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