我是 Ez Publish 的新手,我想让默认的 Rest API 作为第一步工作,然后为移动通信目的开发我自己的 Rest API 扩展,但我在第一步就被阻止了。
当我尝试从“www.mydomain.com/api/ezp/content/node/2/list”获取结果时,我得到“{“error_message”:“Not Found”}”
配置完成:
设置/覆盖/site.ini.append.php
[ExtensionSettings]
ActiveExtensions[]
ActiveExtensions[]=ezprestapiprovider
...
扩展/ezprestapiprovider/settings/rest.ini.append.php
<?php /* #?ini charset="utf-8"?
[ApiProvider]
ProviderClass[ezp]=ezpRestApiProvider
[Authentication]
RequireAuthentication=disabled
*/ ?>
.htaccess
DirectoryIndex index.php
RewriteEngine On
RewriteRule api index_rest.php [L]
RewriteRule ^index_rest\.php - [L]
...
我为我的英语道歉。
Edit1:Ez 发布版本 4.5
Edit2:当我将“www.mydomain.com/api/ezp/content/node/2/list”更改为“ www.mydomain.com/index_rest.php/api/ezp/content”时,这似乎是 RewirteRule 的问题/node/2/list"它有效,我该如何解决?
Edit3: 我尝试了下面的所有重写规则,除了最后一个之外仍然没有工作。
# RewriteRule ^/api/ /index_rest.php [L]
# RewriteRule ^api/(.*) /index_rest.php/$1 [R=302,NC]
# RewriteRule ^/api/(.*) /index_rest.php/api/$1 [NC,L]
RewriteRule api index_rest.php [L]
但是,当我尝试添加新扩展时,它似乎会产生冲突……我添加了一个新扩展,当我尝试访问它时,日志文件出现错误:
意外错误,消息是:找不到 API 提供程序“移动”。在第 37 行的 mydomaine.com\kernel\private\rest\classes\rest_provider.php