Es gibt einen anderen Ansatz, wenn Sie die Kompatibilität mit alten API-Aufrufen beibehalten möchten. Aus irgendeinem obskuren Grund analysiert mein Apache-Server die Zeichenkette ^api/...
während des Umschreibens nicht.
Sie können aber immer noch http://www.somedomain.com/api/v2_soap?wsdl=1
verwenden, ohne Magento PHP Code zu ändern. Sie müssen nur die .htaccess wie folgt ändern:
in .htaccess ersetzen:
RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]
von
RewriteRule ^api(\.php)?/([a-z][0-9a-z_]+)/?$ api.php?type=$2 [QSA,L]
(siehe^api.php/anstelle von^api /)
Und noch besser, wenn einige von Ihnen, haben http://www.somedomain.com/api/V2_soap?wsdl=1
(V2_soap ist Großbuchstaben), müssen Sie eine RewriteMap
hinzufügen, um interne Apache-Funktion zu verwenden, um den Parameter in Kleinbuchstaben zu setzen. In den virtuellen Host die RewriteMap:
RewriteMap lc int:tolower
Und in der .htaccess
RewriteRule ^api(\.php)?/([a-zA-Z][0-9a-z_]+)/?$ api.php?type=${lc:$2} [QSA,L]
Dies wird den Parameter für die api.php Skript in Kleinbuchstaben und auch akzeptieren 'V2_soap' im regulären Ausdruck
Dieser letzte Teil von @dreeves in this answer
gebracht wurde
/index.php/api/V2_soap?wsdl=1 haben Sie diese – chanz
versucht ok so ist dies nur funktioniert, wenn index.php in der URL enthalten ist. Warum ist das? –
index.php ist nicht notwendig, können Sie auch so versuchen www.yourgagento.com/api/V2_soap?wsdl=1 – chanz