Настройка файлов cookie на домене / поддомене - PullRequest
4 голосов
/ 08 сентября 2011

Привет, хорошие люди из StackOverflow, у меня проблема, и я надеялся, что некоторые из вас смогут мне помочь.Допустим, я должен создать какой-то интернет-магазин Wordpress на домене www.webshop.com, написанный на английском языке, с файлом cookie с именем «cartItems», доступным для этого домена.Ок, не проблема.

Проблема в том, что мне также нужно сделать немецкую версию сайта, и мне нужно различать английские и немецкие куки.

Теперь мой вопрос, если, например, немецкийсайт находится на www.webshop.com/de/ Я могу установить немецкий cookie, который будет доступен только для / de / domain, верно?Но как я могу установить, что английские куки будут доступны во всех доменах, кроме / de / one.

Если это невозможно, было бы возможно, если бы немецкий сайт был на de.webshop.com

Спасибо за помощь

Ответы [ 3 ]

5 голосов
/ 08 сентября 2011

Возможно, хотя, конечно, вы должны использовать два разных имени файла cookie, одно для данных EN и одно для данных DE.

Использование другого пути (www.webshop.com для EN и www.webshop.com/de/ для DE):

// this will be available everywhere, both on the english version and the german one
setcookie ('my_en_cookie_name', 'some data', time() + 24*30*3600, '/');
// this will only be visible when accessing the german website, english version user won't be able to see it
setcookie ('my_de_cookie_name', 'some other data', time() + 24*30*3600, '/de/');

Путь для cookie - это обратная блокировка (его можно прочитать только из указанного каталога или из его подкаталога, но не из родительского), поэтому, если вы установите cookie с помощью / de / path, его можно прочитать от / de / или / de / foo / но не от / или / bar /. Таким же образом, если вы установите cookie с путем /, его можно прочитать в / de / или / de / foo / или /bar/.


Использование другого домена (www.webshop.com для EN и de.webshop.com для DE):

// this will be available everywhere, both on the english version and the german one
setcookie ('my_en_cookie_name', 'some data', time() + 24*30*3600, '/', '.webshop.com');
// this will only be visible when accessing the german website, english version user won't be able to see it
setcookie ('my_de_cookie_name', 'some data', time() + 24*30*3600, '/', 'de.webshop.com');

ОБРАТИТЕ ВНИМАНИЕ: установка файла cookie в домене ".webshop.com" означает, что этот файл cookie будет отправлен на каждый субдомен webshop.com, независимо от того, что это такое. Убедитесь, что вы этого хотите.

3 голосов
/ 08 сентября 2011

Существует 3 способа разделения английского и немецкого файлов cookie.

1) Домен. Вы можете использовать отдельный www.и де.поддомен, как вы упомянули.Для меня это будет самый простой

2) Путь: вы можете использовать путь, но если ваш английский cookie установлен на «/», он все равно будет доступен в «/ de /».Поэтому, если вы хотите пойти по этому пути, вам нужно будет указать путь "/ en /", как предложил Керрек.

3) Имя: дайте немецкому файлу cookie другое имя

.нужно сделать один из этих 3, чтобы иметь отдельные английские и немецкие куки.Я думаю, что лучше иметь отдельный поддомен, потому что не только ваши пути к файлам cookie, но и все ваши ресурсы будут одинаковыми независимо от языка.

0 голосов
/ 08 сентября 2011

Лично я использовал этот плагин для решения этой проблемы: http://wpml.org/

Но если вы предпочитаете бесплатное решение, вот очень хорошая статья: http://codex.wordpress.org/Multilingual_WordPress

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...