PHP setcookie() для домена, но НЕ для поддоменов
Вопрос
Есть ли способ установить файл cookie, который нет читается на поддоменах?Другими словами, сделайте файл cookie доступным на domain.com
, но нет www.domain.com
или xyz.domain.com
.
//this is what i'm "intending"...
setcookie($name,$value,$expires,'/','domain.com');
//however, this is how it behaves:
setcookie($name,$value,$expires,'/','.domain.com');
Обоснование:Я настраиваю статический CDN на поддомене и не хочу, чтобы файлы cookie сеанса пользователя перемещались туда и обратно для каждого изображения, файла CSS, файла js и т. д.
...нужно ли мне вернуться к использованию www.domain.com
для моего сайта?Есть ли обходные пути?
Решение
Очевидно, наличие файла cookie на «domain.com», который будет соответствовать «*.domain.com», является ожидаемым поведением.
Например : ПОСЛЕДОВАТЕЛЬНЫЕ HTTP COOKIE-ФАЙЛЫ СОСТОЯНИЯ КЛИЕНТА состояние (некоторый акцент мой) :
domain=DOMAIN_NAME
При поиске списка файлов cookie для действительные куки, сравнение атрибуты домена cookie сделано с доменным именем в Интернете хост, с которого будет URL Привезено....
"Соответствие хвосту" означает соответствующий атрибут домена против хвоста полностью квалифицированное доменное имя хоста. А доменный атрибут "acme.com" будет совпадать с именами хостов "anvil.acme.com" как а также "shipping.crate.acme.com".Только узлы в указанном домене можно установить файл cookie для домена и домены должны иметь не менее двух (2) или трех (3) периодов в них для предотвратить домены формы:".com", ".edu" и "va.us".Любой домен, который терпит неудачу в пределах одного из семи специальных только домены верхнего уровня, перечисленные ниже требуйте двух периодов.Любой другой домен требует не менее трех.Семь специальные домены верхнего уровня:"КОМ", «EDU», «NET», «ORG», «GOV», «MIL» и «INT».
Итак, вам придется либо:
- использовать "
www.domain.com
" для вашего сайта - или используйте совершенно другое доменное имя для статического контента (например, «
.anotherdomain.com
")- например, вот что делается в stackoverflow:статический контент обслуживается с sstatic.net
Другие советы
по этой причине довольно много сайтов (включая этот) регистрируют выделенный домен для использования в качестве CDN.
Это невозможно, так как домен cookie имеет соответствие, совпадающее с именем домена. , Вам придется пойти с www.