https und Shopware

Re: https und Shopware

DAS FOLGENDE IST UNGETESTET UND NUR EIN "SCHUSS INS BLAUE" -> vorher ein Backup machen!!!

Unter der Annahme, dass CAO als "User-Agent" immer noch "CAO-Faktura" sendet (@hh-cm: ist das noch so?) bitte mal in der Shopware-Datei

engine/Shopware/Plugins/Default/Frontend/RouterRewrite/Bootstrap.php

diesen Block (so um Zeile 76)

Code: Alles auswählen

    public function onPreDispatch(Enlight_Controller_EventArgs $args)
    {
        $request = $args->getRequest();
        $response = $args->getResponse();

        if ($response->isException()
            || $request->isPost()
            || $request->isXmlHttpRequest()             // is a ajax call
            || $request->has('callback')                // is a jsonp call
            || $request->getModuleName() != 'frontend'  // is not frontend
            || !$request->getParam('rewriteAlias')      // is not a rewrite url alias
        ) {
ändern in

Code: Alles auswählen

    public function onPreDispatch(Enlight_Controller_EventArgs $args)
    {
        $request = $args->getRequest();
        $response = $args->getResponse();

        if ($response->isException()
            || $request->isPost()
            || $request->isXmlHttpRequest()             // is a ajax call
            || $request->has('callback')                // is a jsonp call
            || $request->getModuleName() != 'frontend'  // is not frontend
            || !$request->getParam('rewriteAlias')      // is not a rewrite url alias
            || $request->getHeader('User-Agent') == 'CAO-Faktura'
        ) {
Anschliessend in Shopware mal den Cache löschen und probieren.

Das sollte dafür sorgen, dass beim entsprechenden User-Agent (hoffentlich) die ganze SEO-Router-Funktion ignoriert wird.

Gruss

Macavity

P.S.: Das ganze ist nur Quick & Dirty und falls es funktionieren sollte ganz sicher nicht updatefest.

Re: https und Shopware

Hallo Macavity,

funktioniert leider nicht, es kommt der gleiche Fehler: 301 moved permanently... :roll:

Re: https und Shopware

Ich würde mal sagen das funktioniert eh nicht.

/store/CaoApi/

Ist doch eh etwas, was z.B zu "/index.php?api=CaoApi" o.ä wird.
Schaltet man das Routing komplett ab funktioniert das auch nicht.

Fest steht, der 301 "Fehler" (es ist eigentlich kein Fehler) kommt vom Webserver. CAO kann da nicht mit umgehen.
Ich gebe dir eine Adresse und du fährst dort hin, da ist aber nicht das Ziel sondern da hängt ein Zettel.
Mich würde das auch irgendwie anfressen. :P

Eigentlich ist es weder die Schnittstelle noch CAO schuld sondern irgendwelche Regeln die Umleiten obwohl es nicht nötig ist.

Der API Entwickler hat uns einen Testshop zur Verfügung gestellt. In diesem kann die CaoApi ohne https aufgerufen werden obwohl der Shop mit https sauber läuft. Das liegt aber mit Sicherheit daran, dass keine Regel jeden http Verkehr auf https umleitet. (dupplicate content wieder mal)

Solange es keine Ausnahmeregelung für bestimmte aufrufe gibt sehe ich echt schwarz.
Gruß Chris
"Derjenige, der sagt: "Es geht nicht", soll den nicht stören, der's gerade tut."

Re: https und Shopware

@hh-cm

Welchen User-Agent sendet CAO denn und akzeptiert CAO Cookies?

Gruss

Macavity

Re: https und Shopware

Der API Entwickler hat uns einen Testshop zur Verfügung gestellt. In diesem kann die CaoApi ohne https aufgerufen werden obwohl der Shop mit https sauber läuft. Das liegt aber mit Sicherheit daran, dass keine Regel jeden http Verkehr auf https umleitet. (dupplicate content wieder mal)

Solange es keine Ausnahmeregelung für bestimmte aufrufe gibt sehe ich echt schwarz.
Ja, wenn ich die permanente Umleitung von http auf https in der htaccess ausschalte, geht es ja., weil die CaoApi mit http aufgerufen wird.
Aber wie kann man eine Ausnahmeregelung einrichten, die dann den Aufruf nicht auf https umleitet?

Re: https und Shopware

Hi,

ich bin mir sehr sicher, dass es nicht an der Serverkonfiguration liegt (s. auch mein Posting vom Mo 8. Feb 2016, 19:13, dort der zweite Codeblock -> es erfolgt kein 301 sondern der Server meldet sauber einen Statuscode 200).

Ich gehe davon aus, dass Shopware sich da was zusammenbastelt (und wie in den Links von gestern Abend, die hh-cm gepostet hatte, liegt das wahrscheinlich am SEO-Router, wenn man ein wenig zwischen den Zeilen liest).

Gruss

Macavity

Re: https und Shopware

@Silvia.Lauss

Welchen Cache hattest Du denn geleert?
Nur den unter "Einstellungen" -> "Shop Cache leeren"?

Oder auch mal "Einstellungen" -> "Caches / Performance" -> Reiter "Cache" -> Haken bei "Index SEO-Urls" - > "Leeren" anklicken?

Gruss

Macavity

Re: https und Shopware

@Silvia.Lauss

Ändere in meinem Versuch von oben bitte mal

Code: Alles auswählen

|| $request->getHeader('User-Agent') == 'CAO-Faktura'
in

Code: Alles auswählen

|| $request->getHeaders('useragent')->getFieldValue() == 'CAO-Faktura'
Gruss

Macavity

Re: https und Shopware

ja, alle geleert...
Habe nochmal getestet, ohne Erfolg.

Re: https und Shopware

Macavity hat geschrieben:@Silvia.Lauss

Ändere in meinem Versuch von oben bitte mal

Code: Alles auswählen

|| $request->getHeader('User-Agent') == 'CAO-Faktura'
in

Code: Alles auswählen

|| $request->getHeaders('useragent')->getFieldValue() == 'CAO-Faktura'
Gruss

Macavity
Leider das gleiche Ergebnis.

Re: https und Shopware

Hmpf, Mist.

Kann natürlich sein, dass CAO mittlerweile einen anderen Useragent sendet.

Chris?

Gruss

Macavity

Re: https und Shopware

Der UserAgent war und ist CAO-Faktura
Ja, wenn ich die permanente Umleitung von http auf https in der htaccess ausschalte, geht es ja., weil die CaoApi mit http aufgerufen wird.
Aber wie kann man eine Ausnahmeregelung einrichten, die dann den Aufruf nicht auf https umleitet?
Wie wird denn die permanante Umleitung eingerichtet? Per .htaccess? Da kann man bestimmt eine ausnahme einrichten.
Gruß Chris
"Derjenige, der sagt: "Es geht nicht", soll den nicht stören, der's gerade tut."

Re: https und Shopware

ja, per htaccess:

Code: Alles auswählen

RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/store/$1 [R=301,L]

Re: https und Shopware

Hmm, da müsste eigentlich

Code: Alles auswählen

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/store/CaoApi
RewriteRule (.*) https://%{HTTP_HOST}/store/$1 [R=301,L]
funktionieren. Dann die Schnittstelle per http ansprechen und SSL aus der Registry entfernen.
Gruß Chris
"Derjenige, der sagt: "Es geht nicht", soll den nicht stören, der's gerade tut."

Re: https und Shopware

funktioniert leider auch nicht, auch nicht mit oder ohne den Eintrag im Registrierungseditor.
Habe sämtliche Möglichkeiten durchprobiert.

Re: https und Shopware

Wird ein 301 zurückgegeben oder eine andere Fehlermeldung ?
Mir ist beim Testen aufgefallen, dass die 301 Meldung nur 1x kam. Danach immer ein anderer Fehler bis ich CAO neu gestartet habe.
Gruß Chris
"Derjenige, der sagt: "Es geht nicht", soll den nicht stören, der's gerade tut."

Re: https und Shopware

ich starte vor jedem Test CAO immer neu, und es kommt der 301er.

Re: https und Shopware

Dann ist hier noch was falsch.

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !^/store/CaoApi
Ich kann das erst morgen ausprobieren.
Gruß Chris
"Derjenige, der sagt: "Es geht nicht", soll den nicht stören, der's gerade tut."

Re: https und Shopware

Was soll ich sagen

Code: Alles auswählen

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/coi/
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
Funktioniert z.B bei Oxid hervorragend. Es wird alles umgeleitet auf https. Es sei denn die URL fängt mit coi/ an.
Also nochmals.

Code: Alles auswählen

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/store/CaoApi/
RewriteRule (.*) https://%{HTTP_HOST}/store/$1 [R=301,L]
Wenn mit diesem Konstrukt http://.../store/CaoApi/ im Browser aufgerufen wird, wird das ganze umgeleitet ?
Gruß Chris
"Derjenige, der sagt: "Es geht nicht", soll den nicht stören, der's gerade tut."

Re: https und Shopware

Das Ergebnis im browser ist:
https://.../store/CaoApi/