2011-04-07 84 views
0

我们在我们的办公室有一个本地网络服务器,用于一些报告和世俗的订单处理 - 没有什么重要的。我最近添加了一些快速代码,将cookie添加到某些工作站,以便用户不会一直登录。我遇到的问题是,由于服务器本身充当额外的工作站,人们可以从http://127.0.0.1,http://localhosthttp://192.168.1.111访问它。这最终创建了三个不同的Cookie域。有没有办法将服务器配置为强制其中一个?或者,我唯一的选择是将所有书签移动到指向实际的IP地址,并警告人们不要使用127.0.0.1/localhost?在多个“域名”上管理Cookie

服务器在Windows上运行Apache 2.2。

+0

为什么你不给这个服务器一个独特的域名? – Gumbo 2011-04-07 16:57:15

回答

2

如果访问者未通过正确的主机名进入,您可以检查$_SERVER['HTTP_HOST']并重定向浏览器。

if('servername' != $_SERVER['HTTP_HOST']) { 
    Location('http://servername/'); 
} 
+0

听起来像一个可能的快速修复 - 我想我甚至可以将它移动到我的.htaccess:'RewriteCond%{HTTP_HOST}!^ 192.168.1.111 $ [NC] RewriteRule ^(。*)$ http://192.168。 1.111/$ 1 [R = 301,L]' – Brandon0 2011-04-07 17:17:20

+0

这似乎是最好的办法,IMO。最好使用的URL是192.168.1.111,所以代码可以是Location('http://192.168.1.1'); – Jordan 2011-04-07 17:18:23

0

Cookie通常设置为域名,而不是ip地址。当使用域名时,您可以使用通配符设置

.apple.com 

然后,该域的任何变体都将接受cookie。

1

如果你正在运行一个内部DNS服务器,你可以配置服务器的主机/域名,而无需注册它 - 因为它是仅供内部使用,你不需要暴露名到世界其他地方。

即使没有DNS服务器,也可以将条目添加到每台计算机的主机文件中,以执行名称 - > IP映射。

将您的网站配置为使用该名称,告诉所有人使用该名称,然后cookies将自行处理,因为它们都将使用该主机/域名进行设置。然后,您可以为仅限IP的匹配添加虚拟主机并将其重定向到新的命名地址。

+0

我喜欢做那样的事情,但我们没有内部DNS(我们的路由器是Cisco RV042,以防万一我错了),而且我不想在每台PC上管理单个HOSTS文件在我们的大楼里。此外,我们有需要的移动设备(即iPhone和iPad)也需要访问服务器too.Any对于便宜的内部DNS的想法? – Brandon0 2011-04-07 17:14:48

+0

有任何windows/unix/linux服务器? IIS有一个DNS服务器,在Unix上安装绑定非常简单。大多数情况下,这只是将它们打开并将所有方框指向DNS查找的问题。然后,您为您的Web服务器配置一个域/主机,然后关闭。 – 2011-04-07 17:17:58

+0

我们现在只是一个工作站环境。 – Brandon0 2011-04-07 17:23:20