为了让maio中的api工作,我需要做些什么吗?
我正在本地安装(1.7)上访问/ api / soap /?wsdl并返回以下错误:
Invalid webservice adapter specified.
网站上的所有内容都已启用但我无法找到有关其他步骤的信息,以便让api工作。
答案 0 :(得分:37)
我已经通过关闭这样的MultiViews选项从htaccess解决了这个问题:
这
<Directory /var/www/magento>
Options Indexes FollowSymLinks MultiViews
</Directory>
到
<Directory /var/www/magento>
Options +Indexes +FollowSymLinks -MultiViews
</Directory>
答案 1 :(得分:2)
如果您希望保持与旧API调用的兼容性,则有一种不同的方法。出于某些不明原因,我的Apache服务器在重写解析期间不分析字符串^api/...
。
但是您仍然可以在不更改Magento PHP代码的情况下使用http://www.somedomain.com/api/v2_soap?wsdl=1
。您只需要更改.htaccess,如下所示:
替换.htaccess:
RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]
通过
RewriteRule ^api(\.php)?/([a-z][0-9a-z_]+)/?$ api.php?type=$2 [QSA,L]
(参见^ api.php /而不是^ api /)
如果你们中的一些人http://www.somedomain.com/api/V2_soap?wsdl=1
(V2_soap是大写的),你将不得不添加一个RewriteMap
以使用内部apache函数来设置小写参数。将RewriteMap添加到虚拟主机:
RewriteMap lc int:tolower
在.htaccess
中 RewriteRule ^api(\.php)?/([a-zA-Z][0-9a-z_]+)/?$ api.php?type=${lc:$2} [QSA,L]
这将设置为小写api.php脚本的参数,并在正则表达式中接受'V2_soap'
最后一部分由@dreeves in this answer
带来答案 2 :(得分:-1)
我通过编辑我的虚拟主机文件 (/etc/apache2/sites-available/mag.dev.conf)
解决了这个问题:
<Directory /var/www/mag/mag>
Options +Indexes +FollowSymLinks -MultiViews
.....
</Directory>
现在加载xml响应。
平台是ubuntu 12.04