bcremer / shopware-with-nginx

Running shopware using NGINX
http://shopware.com
BSD 2-Clause "Simplified" License
95 stars 46 forks source link

Plugin Rewrite Fehler #2

Closed serviceHoster closed 10 years ago

serviceHoster commented 10 years ago

Es gibt aktuell ein Problem mit Plugins wie z.B. Actindo WaWi. http://wiki.actindo.de/index.php?title=Shopware_4

Normal spricht man das Plugin mit www.domain.tdl/Actindo/ an. Das Plugin kann man manuell unter www.domain.tdl/Actindo/xmlrpc_server.php?get_cryptmode=1&username=test bzw. www.domain.tdl/shopware.php/Actindo/xmlrpc_server.php?get_cryptmode=1&username=test aufrufen und hier kommt dann eine Antwort.

Bei Apache funktioniert dies problemlos, bei NGINX mit der .conf leider aktuell nicht. Es kommt eine 404 ERROR.

Ich habe schon viel rumprobiert, leider komme ich nicht drauf woran es hier hängt.

// UPDATE: Ich habe nun das Problem gefunden. Da hier eine PHP Datei direkt aufgerufen werden muss, funktioniert location ~ .php$ { natürlich nicht, weil er nun direkt die PHP Datei xmlrpc..... aufrufen will und deshalb der 404 kommt. Wenn ich location ~ shopware.php$ { schreibe funktioniert es nun korrekt. Die Frage ist ob diese Korrektur nicht negative Auswirkungen auf die Basis Shopware Funktionen hat.

bcremer commented 10 years ago

Hallo,

durch die Änderung auf ~ shopware.php$ wären natürlich keinen anderen, echten PHP Scripte in deinem Shop mehr aufführbar, z.b. der Installer oder Updater.

Welche Version des Actindo Connectors verwendest du? Laut Code sollte auch ein Zugriff über folgende URl möglich sein: www.domain.tdl/Actindo/xmlrpcServerPhp?get_cryptmode=1&username=test

serviceHoster commented 10 years ago

Die aktuellste Version. Problem ist, dass ich in Actindo nur domain.tdl/Actindo/ hinterlegen kann, den xmlrpc fügt dann Actindo automatisch an.

Für meinen Fall müsste es ausreichen eine neue eigene Location in NGINX für diesen Sonderfall anzulegen um nicht alle PHP-Scripts damit nicht mehr ausführbar zu machen.

Vielleicht gibt es ja aber einen allgemeinen Weg, da auch andere Plugins diese Weg gehen könnten. z.B Prüfung ob die PHP Datei existiert, wenn ja dann ausführen, andernfalls versuchen es über shopware.php abzubilden.

bcremer commented 10 years ago

Wenn du eine gute Lösung findest wäre ich über einen Pull Request dankbar. Allerdings würde ich ungern einen Workaround inkludieren der komisches Verhalten von Plugins korrigiert.

macmastermike commented 9 years ago

hallo dieses problem habe ich jetzt auch... und nirgens eine lösung gefunden... ich habe jetzt schon einiges probiert in nginx aber nach wie vor keine funktionierende lösung gefunden...

Kamik commented 9 years ago

Wir haben Orgamax-Schnitstelle installiert. Aufruf der Aktionen sollte so aussehen - domain.tld/DeltraShopConnector/setArticles. Dabei sollte function setArticlesAction in engine\Shopware\Plugins\Community\Frontend\DeltraShopConnector\Controllers\Frontend\DeltraShopConnector.php aufgerufen werden. Leider es funktioniert mit nginx nicht - 404 Error (apache hat kein Problem). Wie kann man das korrigieren?

andreaspollak commented 9 years ago

Nur mal so als schnelle Lösung, schon mal versucht das so zu konfigurieren: (Wobei "/recovery/install" durch den benötigten Pfad getauscht werden muss)

location /recovery/install {
    index index.php;    
    try_files $uri /recovery/install/index.php?$args;
}
Kamik commented 9 years ago

Danke für Vorschlag. Sollte es so aussehen?:

location /DeltraShopConnector { index DeltraShopConnector.php;
try_files $uri /engine\Shopware\Plugins\Community\Frontend\DeltraShopConnector\Controllers\Frontend\DeltraShopConnector.php?$args; }

trotzdem 404 error

andreaspollak commented 9 years ago

Gerne! Ja, genau. Wobei der Pfad noch falsch ist, hier die Korrektur.

location /DeltraShopConnector/ {
    #index DeltraShopConnector.php;
    try_files $uri /engine/Shopware/Plugins/Community/Frontend/DeltraShopConnector/Controllers/Frontend/DeltraShopConnector.php?$args;
}

Einfach mal herantasten.

Kamik commented 9 years ago

Oh, es ist kein Problem mit nginx, sorry. In dem Plugin steht die Prüfung ob USER_AGENT gleich Benutzername ist. Nach dem ich USER_AGENT geändert habe, funktioniert mit der Standardkonfiguration. Danke für die Hilfe, Andreas.

andreaspollak commented 9 years ago

Kein Problem, gerne! Danke für die Rückinfo, vielleicht hilft es ja auch dem nächsten der darüber stolpert. Beste Grüße Andreas