WordPress wp-json前缀问题

时间:2018-06-07 作者:Faysal Ahmed

我使用的是Wordpress 4.9+,我认为默认情况下它是通过REST api启用的。我的永久链接设置为Month and Name 我正在为我的网站使用猎狐犬反应主题。

现在,我的rest api应该可以在

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

但它在

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

这就是为什么我的主题在尝试从api获取数据时出现404错误的原因。

image error

现在我的问题是,如果没有/index.php 前缀

我已经用Lamp服务器手动部署了aws ubuntu micro中的所有内容。Wordpress文件位于根文件夹中(/var/www/html/)

此外,我还使用以下步骤尝试了mod\\u重写模块

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

2 个回复
SO网友:maheshwaghmare

您需要设置网站的永久链接结构。

转到Settings > Permalink.index.php 来自自定义结构Save Changes.http://example.com/index.php/wp-json/wp/v2/posts

Updated:

.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

Note: Change dev.fresh with your own domain.

SO网友:AA Shakil

您可能正在尝试获取您的url,如http://example.com/...../posts 而不是http://example.com/index.php/...../posts

这是服务器的问题。您的服务器不支持,因为您可能正在使用Lightpd 服务器

您可以编辑rewrite_once 在lightpd中。如果是lightpd服务器,请确认。此外,如果您的服务器支持htaccess,则可以添加此行以重写url。

"^(.+)/?$" => "/index.php/$1"
这是针对lightpd的,这个regex可以用于htaccess。

Update: 正如您所说,您的服务器支持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]

结束

相关推荐

WP REST API-如何在Java中将嵌入式转换为JSON对象

我想通过我的帖子从WordPress Rest api获取嵌入图像。我发现我应该添加_embed 或_embed=true 作为我的请求的查询参数。结果有额外的_embedded 部分如下:我将名为\\u embedded的embeddedDto放在主json文件中,并创建其他需要的DTO来处理此问题。图像中的突出显示点似乎有问题wp:featuremedia, 我应该如何将其解析为json?我创建了一个具有featuremedia dto的类wp。我说得对不对?您可以在此处看到其他DTO:public