Wir haben eine Hauptseite bei example.com
. Die Anmeldung example.com/admin
funktioniert dort einwandfrei .
Auf einer Testseite unter test.example.com/admin
kann ich mich jedoch nicht beim Administrator anmelden, ohne zuvor alle example.com
Cookies gelöscht zu haben . Dann kann ich mich anmelden, aber sobald ich mich bei example.com/admin
meinem nächsten Klick auf den Testserver anmelde, kehre ich zur Anmeldeseite zurück.
Ich weiß nicht, ob dies Auswirkungen auf Kundenanmeldungen hat.
Gibt es eine Konfiguration auf der Haupt- oder Testwebsite, die dieses Problem lösen könnte?
magento-1.9
admin
login
cookie
Buttle Butkus
quelle
quelle
.
vor der Domain, ist wichtig!example.com
Administrator, imtest.example.com
Administrator oder in beiden auf ".example.com" gesetzt werden ?example.com
, der anderetest.example.com
. Sie haben beide ihre eigenen Admins. Aber Sie sagen mir nur, ich soll eine Domain für einen der Administratoren einrichten. Wollen Sie damit sagen, dass ich den anderen leer lassen soll?test.example.com
und im Hauptshop festlegenwww.example.com
, um zu vermeiden, dass sich Cookies überschneiden.Anna macht einige gute Punkte und ihre Antwort wird für viele Leute funktionieren, aber nicht für mich, also poste ich meine eigene Antwort. Vielleicht war mein Problem viel grundlegender als das, das sie anspricht.
Meine Lösung bestand darin, die Domain meiner Site von
example.com
auf zu ändernwww.example.com
. Tatsächlich legen meine Recherchen im Internet nahe, dass der Grund, warum Websites wie Amazon, Google, Ebay und jedes andere wichtige Webziel daswww
Präfix verwenden, zu einem großen Teil auf die Funktionsweise von Cookies zurückzuführen ist. Vielleicht nicht.Ein Cookie funktioniert standardmäßig für alle Subdomains. Also , wenn
example.com
Sie ein Cookie sendet, dann besuchen Siemail.example.com
,smile.example.com
oderdevsite.example.com
, dann wird Ihr Browser das Cookie auf den verlinkten Seiten senden und diese Seiten werden versuchen , das Cookie zu verwenden. Sie können Ihre Sitzung jedoch nur finden, wenn sie alle einen gemeinsamen Sitzungsordner verwenden. Und selbst dann hätten Sie wahrscheinlich Probleme aufgrund unterschiedlicher Datenbankkonfigurationen, unterschiedlicher Anwendungsstrukturen usw.Das Vornehmen der Änderung umfasste das Erstellen von 301 Weiterleitungen in meiner Stamm-htaccess-Datei, das Ändern der sicheren / unsicheren URLs in der Magento-
core_config_data
Datenbanktabelle, das Ändern der SiteServerName
in ApacheVirtualHosts
und das Aktualisieren der DNS- / Nameserver-Einstellungen. Aber es hat sich gelohnt.Wenn ich meine Hauptseite erstelle
www.example.com
, gelten ihre Cookies jetzt nur noch für Subdomains wiemail.www.example.com
(und wir haben keine solchen Subdomains). Client-Browser, die daswww.example.com
Cookie erhalten, senden es nicht andevsite.example.com
, und das Problem ist behoben. Außerdem ist es wirklich schön, einenwww
vor unserem Domainnamen zu haben.quelle
Sie können einfach den Namen des adminhtml-Cookies für Subdomains ändern.
Zwei Änderungen in der Datei
app/code/core/Mage/Core/Controller/Varien/Action.php
.In der Funktion
preDispatch
Wechsellinienzu
In Funktion
setRedirectWithCookieCheck
ändernzu
Und danach nach Text suchen
in allen Dateien und ersetzen Sie es durch
wenn irgendwelche Vorkommen gefunden würden.
quelle
adminhtml
für die Domain setzt.example.com
. Wenn Sie versuchen, unter test.example.com/admin zu autorisieren, wird versucht, etwas mit dem Cookieadminhtml
für zu tun.test.example.com
. Die Probleme unterscheiden sich in den Magento-Einstellungen. Das Hauptproblem besteht darin, dass Sie das Cookie der Hauptdomäne nicht über die Unterdomäne ändern können. Mit dem obigen Code erstellt Magento Cookiesadminhtml
für example.com und Cookiesadminhtml_subdomain
für subdomain.example.com, sodass sie in keiner Weise gemischt werden. Wechseln Siesubdomain
zu dem richtigen, den Sie verwenden.Wenn Sie sich aufgrund von Cookie-Problemen immer noch nicht bei Ihrem Frontend anmelden können (Kundensitzung kann nicht erstellt werden), überschreiben Sie bitte die entsprechende Kerndatei
und
Kommentieren Sie die Zeilen aus, auf die in diesem Thread hingewiesen wird. Dies hat das Problem mit der Kundenanmeldung im Frontend im Versionsspeicher vor 1.8.x behoben.
/magento//a/34057/695
quelle