我是Ez Publish的新手,我想让默认的Rest API作为第一步工作,然后开发我自己的Rest API扩展用于移动通信目的,但我在第一步被阻止。
当我尝试从“www.mydomain.com/api/ezp/content/node/2/list”获取结果时,我得到“{”error_message“:”不是发现 “}”
配置已完成:
设置/重写/ site.ini.append.php
[ExtensionSettings]
ActiveExtensions[]
ActiveExtensions[]=ezprestapiprovider
...
延伸/ ezprestapiprovider /设置/ 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]
...
我为我的英语道歉。
编辑1:Ez发布版本4.5
Edit2:当我更改“www.mydomain.com/api/ezp/content/node/2/list”时,这似乎是RewirteRule的问题“www.mydomain.com/index_rest.php/api/ezp/content/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提供商“mobile”。在第37行的mydomaine.com \ kernel \ private \ rest \ classes \ rest_provider.php
答案 0 :(得分:2)
尝试用eZ
指定的那个替换这些重写符RewriteRule ^/api/ /index_rest\.php [L]
此处列出的版本为4.5:http://doc.ez.no/eZ-Publish/Technical-manual/4.5/Installation/Virtual-host-setup
答案 1 :(得分:1)
我只是重新生成自动加载,它现在正在运行。我使用cmd行来做(使用管理模块重新生成自动加载对我来说不起作用)。