У меня есть три сайта с установкой Magento, у каждого есть свой домен.
Теперь из-за безопасности веб-браузера вы не можете получить доступ к файлам cookie с другого домена или сессий.
Как-то мне нужно иметь возможность передавать временные данные между двумя разными магазинами с разными доменами.
Мой конкретный вариант использования:
Я использую GeoIP для запуска перенаправления в правильное хранилище стран, однако мне также нужно иметь возможность вручную переопределить это. Сейчас у меня возникла проблема, когда я вручную переопределяю текущее хранилище с помощью файла cookie, однако, когда я перенаправлен в другое хранилище, в другом хранилище нет файла cookie, поэтому он возвращается к предыдущему состоянию и ищет пользователей. магазин на основе GeoIP. Однако это затем создает бесконечный цикл, перенаправляющий между магазинами.
Это делается путем определения кода веб-сайта для магазина, в котором я хочу использовать index.php
пользовательский модуль, и запуска Magento с правильным кодом. Это обрабатывает все перенаправления и т. Д. Для меня тогда.
источник
Ответы:
Вы можете поделиться
frontend
cookie-файлами между веб-сайтом magento и различными доменами, используя это решение ainixon.me/set-cookie-on-cross-domains .Вам нужно создать
cookies.php
файл со следующим кодоми в шаблоне magento вам нужно будет добавить следующий код после
<body>
тегаисточник
Просто перенаправьте,
?SID=yourSessionId
затем вы можете использовать его в другом представлении магазина.источник
\Mage_Core_Model_Session_Abstract::setSessionId()
просто проверьте, установлен ли идентификатор сессии, и установите его.Просто убедитесь,
Use SID in frontend
что включен.Любые ...
Mage::getUrl()
$this->_redirectUrl($url);
илиMage::app()->getFrontController()->getResponse()->setRedirect()
Затем будет содержать уважение
SID
.Если вы используете
files
для хранения сеанса, просто убедитесь, что каталог обычноsymlinked
; если вы используете Memcache / Redis / DB, это не проблема.-
Просто отметьте, что существует множество изящных способов справиться с перенаправлением GeoIP дальше, чем Magento. Вы можете сделать это на уровне веб-сервера (проверяя наличие соответствующего файла cookie «без перенаправления»).
источник
В вашем администраторе перейдите в «Конфигурация»> «Интернет»> «Сеанс»> «Использовать SID во внешнем интерфейсе» и включите.
При переходе с одного сайта на другой пропустите сеанс, включив его в URL (используйте,
&
если вы уже используете?
для$_GET
параметра)источник