首页 > 解决方案 > 从无 cookie 域中切断静态内容

问题描述

我想从新创建的子域中提供我网站的静态内容,但它不起作用。cPanel 中没有选项可以使该子域无 cookie。所以我尝试使用 .htaccess 使其无cookie,但它仍然对我不起作用。这是我的 .htaccess 代码。

# Use Mod_deflate to compress static files
<ifmodule mod_deflate.c>
<filesmatch ".(js|css|ico|txt|htm|html|php)$">
SetOutputFilter DEFLATE
</filesmatch>
</ifmodule>

# Speed up caching
FileETag MTime Size

# Expires
ExpiresActive On
ExpiresDefault "access plus 366 days"

# Future Expires Headers
<filesmatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Expires "Sat, 27 Dec 2019 23:59:59 GMT"
</filesmatch>

我的网站的文件夹结构是这样的:

主目录/图像

我的子域指向 Images/ 。现在我的图片 url 将是 new-subdomain/test.jpg。

有人可以告诉我如何实现我的目标吗?

标签: php.htaccesssubdomain

解决方案


在您尝试发送 cookie 之前,所有域都是无 cookie 的。如果您尝试通过 cloudflare 等内容交付网络提供图像,即使在无 cookie 的域上,仍然会有 cookie 发送到您无法控制的范围内。这可以通过 cloudflare 为付费计划禁用。但是,如果您有一个类似的域mysite.com并且您有在那里提供服务的 cookie,那么该站点上的所有子域都将看到所有mysite.com. 但是,如果您从 设置 cookie www.mysite.com,那么这将被视为一个不会影响其他相邻子域的子域,例如subdomain.mysite.com如果您过去没有像这样设置您的站点,那么您可能会有一些 cookie 浮动如果您没有经历,请从您的主站点上的 session_start 之类的东西开始www.或者,为此创建一个新域并将其指向您的服务器。或通过其 IP 地址提供图像。或者只是接受许多人所拥有的,即发送 cookie 以及对资产的请求并不值得费心去优化。一个完全优化的网站不会从中获得明显的收益,而且无 cookie 域的概念被高估了,一开始几乎没有收益。甚至有争议的是,为此设置第二个域实际上会由于额外的 DNS 查找而减慢您的站点速度。所以这里是选项:

  1. 强制执行www.,这样您就没有任何 cookie,mysite.com因此您可以使子域无 cookie
  2. 获取一个新域作为无 cookie 域专用
  3. 使用资产的 IP 地址而不是域名,就 cookie 而言,这本质上是另一个域名。这是假设您可以通过域名访问图像
  4. 找到可以为您执行此操作的内容交付服务
  5. 意识到利大于弊,放弃尝试实现无 cookie 域,因为这可能是浪费时间,最好花在更高优先级的事情上

推荐阅读