Alt alanlarla çalışmayan çerezler


11

Adresinde bir ana sitemiz var example.com. Giriş yapmak example.com/adminiyi çalışıyor.

Ancak adresindeki bir test sitesinde, test.example.com/adminönce tüm example.comçerezleri silmeden yöneticiye giriş yapamıyorum . Sonra giriş yapabilirim, ancak example.com/admintest sunucusunda bir sonraki tıklamamda oturum açtığımda beni tekrar giriş sayfasına götürüyor.

Bunun müşteri girişlerini etkileyip etkilemediğini bilmiyorum.

Ana sitede veya test sitesinde bu sorunu çözecek bir yapılandırma var mı?

Yanıtlar:


14
  1. Yönetici menüsünde Sistem> Yapılandırma'yı seçin. Ardından soldaki panelde Genel'in altında Web'i tıklayın.
  2. Oturum Çerezi Yönetimi bölümünü genişletin

In example.comdükkanı, aşağıdakileri ayarlayın:

  1. Çerez Alan Adını example.com olarak ayarlayın (genellikle bu ayar, önünde nokta bulunan .example.com olur, bu durumda olmadan deneyebilirsiniz).

In test.example.comdükkanı, aşağıdakileri ayarlayın:

  1. Çerez alanını test ortamında .test.example.com olarak ayarlayın. (alan adının önündeki "." burada iyi olmalıdır)

2
.Alan adının önündeki 3. Adım'ın bir notu önemlidir!
B00MER

Merhaba Anna. Çerez alanı example.comyönetici, test.example.comyönetici veya her ikisinde ".example.com" olarak ayarlanmalı mı?
Buttle Butkus

Varsayılan yapılandırma olarak ayarladım (sanırım example.com yöneticiniz). Bu, tüm kapsamlar için .example.com anlamına gelir.
Anna Völkl

@ AnnaVölkl Burada emin değilim. İki farklı makinede tamamen ayrı iki magento kurulumum var, değil mi? Biri kullanır example.com, diğeri test.example.com. İkisinin de kendi yöneticileri var. Ama bana sadece yöneticilerden biri için bir alan adı ayarlamamı söylüyorsun. Diğerini boş bırakmam gerektiğini mi söylüyorsun?
Buttle Butkus

Ah, anlıyorum. Aslında bunların 2 ayrı kurulum olduğunun farkında değildim. Ana dükkan www-Domain ile veya www-Domain olmadan mı çalışıyor? Çerez çakışmasını önlemek için Testteki test.example.comve ana mağazadaki Çerez Alan Adını ayarlayabilirsiniz www.example.com.
Anna Völkl

9

Anna iyi puanlar verir ve cevabı birçok insan için işe yarar, ama benim için değil, bu yüzden kendi cevabımı gönderiyorum. Belki de benim sorunum ele aldığı sorundan çok daha temeldi.

Çözümüm, sitemin etki alanını olarak olarak example.comdeğiştirmekti www.example.com. Aslında, internetteki araştırmam Amazon, Google, Ebay ve diğer tüm büyük web hedeflerinin wwwönekini kullanmasının nedeninin çerezlerin çalışma şekli nedeniyle büyük ölçüde olabileceğini gösteriyor. Belki de değil.

Bir çerezin varsayılan olarak çalışması, tüm alt alanlara uygulanmasıdır. Yani eğer example.comsize bir çerez gönderir, o zaman ziyaret mail.example.com, smile.example.comya devsite.example.comsonra tarayıcınızın bu sitelerin için bu çerezi gönderir ve bu sitelerin çerez kullanmaya çalışacaktır. Ancak, ortak bir oturum klasörü kullanmadığı sürece oturumunuzu bulamazlar. Ve o zaman bile, farklı veritabanı yapılandırmaları, farklı uygulama yapıları, vb. Nedeniyle sorunlarınız olabilir.

Değişikliği kök htaccess dosyamda 301 yönlendirmeleri oluşturma, magento core_config_dataveritabanı tablosundaki güvenli / güvensiz URL'leri değiştirme, sitenin ServerNameApache'de değiştirme VirtualHostsve DNS / ad sunucusu ayarlarını güncelleme işlemlerini içeriyor. Ama buna değdi.

Ana sitemi yaparak www.example.com, çerezleri artık yalnızca alt alanları için geçerlidir mail.www.example.com( örneğin, bu tür alt alanlarımız yoktur). www.example.comÇerezi alan istemci tarayıcıları çerez göndermez devsite.example.comve sorun çözülür. Ayrıca wwwalan adımızın önünde bir tane olması gerçekten güzel .


1
Keşke bu cevap için birden fazla Oy Verebilsem. Ben aylarca bir çözüm arıyorum ve herkes Cookie Path ve Cookie Domain hakkında söylemeye devam ediyor, ancak www kullanmazsanız bu sorunu çözmez. Teşekkür ederim!!
Bruno Monteiro

Çerez alanında zaten www var, ancak yine de başarısız ...
Siyah

Hala başarısız olan nedir?
Buttle Butkus

3

Alt alanlar için adminhtml çerez adını kolayca değiştirebilirsiniz.

Dosyada iki değişiklik app/code/core/Mage/Core/Controller/Varien/Action.php.

İşlev preDispatchdeğiştirme satırlarında

/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $this->_sessionNamespace))->start();

için

$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();

İşlev setRedirectWithCookieCheckdeğişikliğinde

/** @var $session Mage_Core_Model_Session */
session = Mage::getSingleton('core/session', array('name' => $this->_sessionNamespace));

için

$namespace = $this->_sessionNamespace.($_SERVER['SERVER_NAME']=='subdomain.example.com'?'_subdomain':'');
/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $namespace));

Ve ondan sonra metin araması

Mage::getSingleton('core/session', array('name' => 'adminhtml'));

tüm dosyalarda değiştirin ve

Mage::getSingleton('core/session', array('name' => 'adminhtml'.($_SERVER['SERVER_NAME']=='subdomain.example.com'?'_subdomain':'')));

herhangi bir olay bulunursa.


1
Kodları, oturumları ayırmak için istemci ve sunucu çerezi etkileşimlerini nasıl değiştirdiğini açıklayabilir misiniz?
Buttle Butkus

@ButtleButkus sorun, example.com/admin'in alan adı adminhtmliçin bir çerez ayarlamasıdır .example.com. Eğer test.example.com/admin de yetki çalıştığınızda, o çerez ile bir şeyler yapmaya çalışır adminhtmliçin .test.example.com. Sorunlar Magento ayarlarında farklılık gösterir. Ana sorun, alt alan adından ana alanın çerezini değiştirememenizdir. Yukarıdaki kod Magento'nun adminhtmlexample.com adminhtml_subdomainiçin çerez ve subdomain.example.com için çerez oluşturmasını sağlar, böylece hiçbir şekilde karışmazlar. Kullandığınız subdomaindoğru olanla değiştirin .
maxvgi

Yönetici tarafı için iyi. Ancak ön taraf da bu tür bir çözümde çerez adını değiştirmeli, değil mi?
Buttle Butkus

@ButtleButkus haklısın. Üzgünüm, bunu yazmadım çünkü böyle bir problemim yoktu.
maxvgi

Tamam, muhtemelen bazı insanlar için hala yararlı.
Buttle Butkus

0

Çerez sorunları nedeniyle hala kullanıcı arayüzünüze giriş yapamıyorsanız (müşteri oturumu oluşturulamıyor), lütfen ilgili çekirdek dosyayı geçersiz kılın

Ön 1.8.x. sürümler - app / code / core / Mage / Müşteri / Model / session.php

ve

1.8.x'den sürüm uygulaması / kod / çekirdek / Büyücü / Çekirdek / Model / Oturum / Özet.php

Bu konuya dikkat çeken çizgileri yorumlayınız. Bu, ön 1.8.x sürüm mağazasında ön uçtaki müşteri girişi ile ilgili sorunu çözdü.

https://magento.stackexchange.com/a/34057/695

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.