私は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エラーになる理由です。
今私の質問は私がどのように私が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
あなたは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]
あなたはあなたのウェブサイトのパーマリンク構造を設定する必要があります。
index.php
を削除します。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
を自分のドメインに変更してください。