回答:
でexample.com
店、次のように設定します。
でtest.example.com
店、次のように設定します。
example.com
管理者、test.example.com
管理者、またはその両方でCookieドメインを「.example.com」に設定する必要がありますか?
example.com
、もう1つは使用しtest.example.com
ます。どちらにも独自の管理者がいます。しかし、管理者の1人にドメインを設定するように言っているだけです。他は空欄にしておくべきですか?
test.example.com
とメインショップでCookieドメインを設定すると、www.example.com
Cookieの重複を回避できます。
アンナはいくつかの良い点を作り、彼女の答えは多くの人にとってうまくいきますが、私には役に立たないので、私は自分の答えを投稿しています。おそらく、私の問題は彼女が取り組む問題よりもはるかに根本的なものだったのでしょう。
私の解決策は、サイトのドメインをからexample.com
に変更することwww.example.com
でした。実際、インターネットに関する私の調査では、Amazon、Google、Ebay、およびその他すべての主要なWeb宛先がwww
プレフィックスを使用する理由の大部分は、Cookieの動作方法が原因である可能性があることを示唆しています。そうでないかもしれない。
Cookieが機能するデフォルトの方法は、すべてのサブドメインに適用されることです。したがってexample.com
、がCookieを送信した場合、、、またはにアクセスするmail.example.com
とsmile.example.com
、devsite.example.com
ブラウザがそのCookieをこれらのサイトに送信し、それらのサイトがCookieを使用しようとします。ただし、すべてのユーザーが共通のセッションフォルダーを使用しない限り、ユーザーはセッションを見つけることができません。それでも、データベース構成やアプリケーション構造が異なるために問題が発生する可能性があります。
変更を行うには、ルートhtaccessファイルに301リダイレクトを作成し、magento core_config_data
データベーステーブルのセキュア/非セキュアURLを変更し、ServerName
Apache のサイトを変更し、VirtualHosts
DNS /ネームサーバー設定を更新しました。しかし、それだけの価値はありました。
私のメインサイトを作成することによりwww.example.com
、そのCookieはそのようなサブドメインにのみ適用されるようになりますmail.www.example.com
(そのようなサブドメインはありません)。www.example.com
Cookie を取得するクライアントブラウザはに送信せずdevsite.example.com
、問題は解決しました。さらにwww
、ドメイン名の前にを付けると本当に便利です。
サブドメインのadminhtml cookie名を変更するだけです。
ファイルの2つの変更app/code/core/Mage/Core/Controller/Varien/Action.php
。
関数preDispatch
変更行
/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $this->_sessionNamespace))->start();
に
$namespace = $this->_sessionNamespace.($_SERVER['SERVER_NAME']=='subdomain.example.com'?'_subdomain':'');
/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $namespace))->start();
機能setRedirectWithCookieCheck
変更中
/** @var $session Mage_Core_Model_Session */
session = Mage::getSingleton('core/session', array('name' => $this->_sessionNamespace));
に
$namespace = $this->_sessionNamespace.($_SERVER['SERVER_NAME']=='subdomain.example.com'?'_subdomain':'');
/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $namespace));
その後、テキストを検索します
Mage::getSingleton('core/session', array('name' => 'adminhtml'));
すべてのファイルでそれを置き換える
Mage::getSingleton('core/session', array('name' => 'adminhtml'.($_SERVER['SERVER_NAME']=='subdomain.example.com'?'_subdomain':'')));
発生が見つかった場合。
adminhtml
ドメインの名前でCookieを設定することです.example.com
。test.example.com/adminで認証しようとすると、のCookie adminhtml
を使用して何かを試み.test.example.com
ます。Magentoの設定によって問題が異なります。主な問題は、メインドメインのCookieをサブドメインから変更できないことです。上記のコードにより、Magento adminhtml
はexample.comのCookie adminhtml_subdomain
とsubdomain.example.comのCookieを作成するため、これらが混在することはありません。subdomain
使用する正しいものに変更してください。
Cookieの問題が原因でまだフロントエンドにログインできない(顧客セッションを作成できない)場合は、それぞれのコアファイルをオーバーライドしてください。
1.8.xより前。バージョン-app / code / core / Mage / Customer / Model / session.php
そして
1.8.xから バージョンapp / code / core / Mage / Core / Model / Session / Abstract.php
このスレッドで指摘された行をコメント化します。これにより、1.8.xより前のバージョンのストアのフロントエンドでの顧客ログインの問題が修正されました。
.
ドメインの前のステップ3についてのメモは重要です。