Esiste un approccio diverso se si desidera mantenere la compatibilità con le chiamate API precedenti. Per qualche motivo oscuro, il mio server Apache non analizza la stringa ^api/...
durante l'analisi della riscrittura.
Ma è ancora possibile utilizzare http://www.somedomain.com/api/v2_soap?wsdl=1
senza modificare il codice PHP Magento. Hai solo bisogno di cambiare il .htaccess come la seguente:
Sostituire in .htaccess:
RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]
da
RewriteRule ^api(\.php)?/([a-z][0-9a-z_]+)/?$ api.php?type=$2 [QSA,L]
(vedere la^api.php/al posto di^api /)
E ancora meglio se alcuni di voi hanno http://www.somedomain.com/api/V2_soap?wsdl=1
(V2_soap è maiuscolo), sarà necessario aggiungere un RewriteMap
per utilizzare la funzione apache interna per impostare in minuscolo il parametro. Aggiungi al tuo host virtuale del RewriteMap:
RewriteMap lc int:tolower
E nel .htaccess
RewriteRule ^api(\.php)?/([a-zA-Z][0-9a-z_]+)/?$ api.php?type=${lc:$2} [QSA,L]
questo imposterà in minuscolo il parametro per lo script api.php e anche accettare 'V2_soap' nell'espressione regolare
Questa ultima parte è stata portata da @dreeves in this answer
fonte
2013-04-09 08:46:30
/index.php/api/V2_soap?wsdl=1 Hai provato questo – chanz
ok così questo funziona solo quando index.php è incluso nel URL. Perchè è questo? –
index.php non è necessario, puoi provare anche in questo modo www.yourmagento.com/api/V2_soap?wsdl=1 – chanz