2010-05-07 165 views
1

我服务的是由PHP生成的动态图像内容。但是对于.php文件的这种请求,PHPSESSID cookie正在被发送,这是一种浪费。阻止PHP向请求发送PHPSESSID cookie?

是否有可能防止PHP发送这个cookie与PHP文件的请求?还是PHP完全有必要工作?

谢谢你的时间!

+1

不确定你在问什么。当您在php脚本中使用session_start()时,浏览器会获得一个会话cookie。只要浏览器具有该cookie,浏览器就会发送每个请求。 – 2010-05-07 01:04:15

+0

@Rob:他基本上是问如何在PHP提供图片时忽略cookie(后来我意识到这一点,因此删除了我毫无价值的答案)。马修是正确的,只是使用另一个域/路径。 – BalusC 2010-05-07 01:31:25

回答

6

浏览器将发送适用于特定路径域组合的任何cookie。除了使用不同的路径和域之外,您无法控制这一点。这就是为什么许多网站使用static content domains

+0

啊..我使用一些东西的静态内容域。在这种情况下,我无法理解我的想法。无论如何,谢谢马修! – Nirmal 2010-05-09 08:50:25

1

这是由PHP的会话功能使用。如果您的网站没有使用会话,那么这可能不应该显示。

请记住,cookie是由浏览器发送的,并且您无法控制其传输。

0

你说的“不要使用cookie的会话,使用phpsessid作为get参数”php不赞成使用这个理由。 Cookie将始终发送到相同的域。如果你真的想避免开销的话,不需要cookie的资源应该在一个单独的域中,因此不会发送cookie。 IE浏览器。 static.domain.com为静态内容。 老实说,这不值得一提。

0

我查过了,这是我发现的唯一解决方案。

下面的代码添加到您的.htaccess文件:

的RewriteCond%{QUERY_STRING} PHPSESSID = * $

重写规则*%{REQUEST_URI}。? [R = 301,L]

+0

对不起,这是干什么的?如果QUERY_STRING包含会话ID,它似乎会从请求中去除所有参数并重定向。 – rjmunro 2012-04-27 15:26:42