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.