Ich bin mit der Verwendung verschiedener Methoden zum Generieren einer sicheren URL basierend auf dem Kontext vertraut, dh:
$this->getUrl('my-page', array('_forced_secure' => $this->getRequest()->isSecure()));
Dies eignet sich hervorragend zum Erstellen von Links, die im sicheren Modus auf eine sichere Seite verweisen (oder nur auf die nicht sichere Seite verlinken, wenn der sichere Modus nicht verwendet wird).
Das Problem, das ich betrachte, ist, dass Magento nur einige spezielle Seiten als sicher behandelt (Kundenkonto, Kasse usw.). Ich würde es vorziehen, wenn Magento immer einen sicheren Link verwendet, wenn sich der Benutzer derzeit im sicheren Modus befindet , oder den nicht sicheren Link verwenden würde, wenn sich der Benutzer im nicht sicheren Modus befindet.
Nach allem, was ich sagen kann, sind meine einzigen wirklichen Optionen:
- Ändern Sie jede Instanz von so
$this->getUrl()
, dass sie dem obigen Snippet ähnelt. - Stellen Sie nicht sicher ein
base_url
, um HTTPS zu verwenden, und zwingen Sie alle Seiten zur Sicherung.
Gibt es eine bessere Methode, bei der nicht jeder Aufruf $this->getUrl()
von HTTPS geändert oder alle Seiten gezwungen werden müssen, unabhängig vom Benutzerkontext?
- bearbeiten -
Ich bin mir bewusst, dass ich die /app/code/core/Mage/Core/Model/Url.php->setRouteParams()
Methode ändern kann, obwohl ich hoffe, dass es einen saubereren Weg gibt.
Mage_Core_Model_Store::getBaseUrl
, um unseren Shop immer sicher zu machen, wenn er in einen Facebook-Tab eingebettet ist. Es gibt jedoch noch andere Dinge zu beachten, z. B. das Speichern des Block-Cache, je nachdem, welcher Treffer zuerst eintritt (Sie müssen dem Cache-Schlüssel etwas hinzufügen). Sie haben auch entweder, wie David sagt, nicht sichere Links zum Anmelden / Auschecken, oder letztendlich befindet sich jeder Kunde auf Ihrer Website im sicheren Modus, wenn er sich jemals anmeldet oder an die Kasse geht./catalogsearch/
Pfads als sicher etwas Passendes beinhalten sollte/catalogsearch/*/*/
? Dh es würde nur eine Regel erfordern, um alles untercatalogsearch
sicher zu machen .Stellen Sie Folgendes in Ihre
app/etc/config.xml
Datei ein:Dies funktioniert in Magento 1.9.1
Wenn der Benutzer https verwendet, sollte dies alle URLs zwingen, in https umzuschreiben.
quelle
Es gibt eine untertriebene, aber wichtige Option in System | Konfiguration | Web ~ wo Sie sagen müssen "sichere URL im Frontend verwenden" - wenn Sie dies auf "Ja" setzen, verwendet eine von https geladene Seite https-Links.
In den meisten Fällen muss kein Code geschrieben oder zusätzliche Konfiguration bereitgestellt werden
quelle