Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我如何在两个设备上使用相同的会话功能;mysite.com“;及;www.mysite.com“;?_Php - Fatal编程技术网

Php 我如何在两个设备上使用相同的会话功能;mysite.com“;及;www.mysite.com“;?

Php 我如何在两个设备上使用相同的会话功能;mysite.com“;及;www.mysite.com“;?,php,Php,当一个成员使用www登录到我的站点时,我反复遇到一个问题。如果他访问一个没有www的链接,会话变量不会继续 怎样才能让他们都进入同一个地方?理想状态 您的站点应该位于。因此,您应该选择www.或顶级域,并更改所有链接,使它们指向一个网址。明智的做法是切换到在配置中设置域,并使用该配置在应用程序中创建web地址——这样,如果您愿意,您可以稍后轻松更改URL 如果您正在运行Apache,还可以通过将以下内容添加到站点的.htaccess文件,轻松地将流量从一个域重定向到另一个域: #enforce

当一个成员使用www登录到我的站点时,我反复遇到一个问题。如果他访问一个没有www的链接,会话变量不会继续

怎样才能让他们都进入同一个地方?

理想状态 您的站点应该位于。因此,您应该选择
www.
或顶级域,并更改所有链接,使它们指向一个网址。明智的做法是切换到在配置中设置域,并使用该配置在应用程序中创建web地址——这样,如果您愿意,您可以稍后轻松更改URL

如果您正在运行Apache,还可以通过将以下内容添加到站点的
.htaccess
文件,轻松地将流量从一个域重定向到另一个域:

#enforce the use of the www. subdomain on the sites URL
RewriteCond %{HTTP_HOST}  !^(www.).*$                 [NC]
RewriteRule ^(.*)$        http://www.%{HTTP_HOST}/$1  [R=301,L]
我还应该提到,越来越多的人不再使用
www.
子域作为网站的主要“URL”。见:

不太理想 您可以在设置cookie配置时对其进行更改,以便它可以跨域工作。这在上用
参数描述:

cookie可用于的域。将域设置为 “www.example.com”将使cookie在www子域中可用 和更高的子域。可用于较低域的Cookie,例如 “example.com”将可用于更高的子域,例如 “www.example.com”。旧浏览器仍在实现不推荐的» RFC 2109可能需要引导。以匹配所有子域

唯一的问题是,您的站点仍然可以通过两个URL访问。

您的站点应该位于。因此,您应该选择
www.
或顶级域,并更改所有链接,使它们指向一个网址。明智的做法是切换到在配置中设置域,并使用该配置在应用程序中创建web地址——这样,如果您愿意,您可以稍后轻松更改URL

如果您正在运行Apache,还可以通过将以下内容添加到站点的
.htaccess
文件,轻松地将流量从一个域重定向到另一个域:

#enforce the use of the www. subdomain on the sites URL
RewriteCond %{HTTP_HOST}  !^(www.).*$                 [NC]
RewriteRule ^(.*)$        http://www.%{HTTP_HOST}/$1  [R=301,L]
我还应该提到,越来越多的人不再使用
www.
子域作为网站的主要“URL”。见:

不太理想 您可以在设置cookie配置时对其进行更改,以便它可以跨域工作。这在上用
参数描述:

cookie可用于的域。将域设置为 “www.example.com”将使cookie在www子域中可用 和更高的子域。可用于较低域的Cookie,例如 “example.com”将可用于更高的子域,例如 “www.example.com”。旧浏览器仍在实现不推荐的» RFC 2109可能需要引导。以匹配所有子域


唯一的问题是仍然可以通过两个URL访问您的站点。

将您的服务器配置修改为301将流量从“yourdomain.com”重定向到“www.yourdomain.com”

将您的服务器配置修改为301将流量从“yourdomain.com”重定向到“www.yourdomain.com”

解决方案1:将cookie的域设置为不带www前缀的域名(这样,两个请求都应与cookie数据一起发送)


解决方案2:将使用不带前缀的变体的所有人重定向到带前缀的变体(例如使用mod_rewrite)。

解决方案1:将cookie的域设置为不带www前缀的域名(这样,两个请求都应与cookie数据一起发送)


解决方案2:将使用不带前缀的变体的所有人重定向到带前缀的变体(例如使用mod_rewrite)。

当一些用户访问www.*站点时,自动重定向到另一个站点。

当一些用户访问www.*站点时,然后自动重定向到另一个站点

也许您不应该将它们转到www.*,而是应该将所有流量重定向到其中任何一个站点?也许您不应该将它们转到www.*,而是将所有流量重定向到其中任何一个?@LightnessRacesinOrbit您可以选择任何一种方式,而且越来越多的人不再使用
www.
作为网站的主域:@Treffynnon:是的,我非常清楚这种移动。我很难称之为“成长”。@LightnessRacesinOrbit你在这里用称呼来帮助你的论点——你最初的评论暗示这是不可能的,我们现在都同意这是不正确的。如果它有
www.
或者不只是选择一个并重定向到它,我就不能给出一个东西堆栈溢出、GitHub、Twitter等都没有
www.
BTW,所以我不知道你从哪里知道这是不规则的。@Treffynnon:我没有叫任何人的名字。我观察到,与理论联系在一起的是,过时的“无www”运动的追随者是愚蠢的。骂人是指你说“嘿,蠢脸!”。我也没有说它是“不规则的”,我也从来没有说它“不可能做到”——我已经重定向URL很多很多年了。我说他“走错了路”,因为“正确”的建议和最好的办法是保留“www.”。但我喜欢你的草莓人。非常好吃。@LightnessRacesinOrbit请你给我看看支持这一说法的研究结果好吗?我很高兴被证明是错的,但我在这里看到的只是观点和可能的误导,一个简短的开场白暗示着某些事情不会起作用。就像我说的,只要人们选择一个并从其他域重定向到另一个域,我就不在乎他们选择哪种方式。@LightnessRacesinOrbit你可以选择任何一种方式,而且越来越多的人不再使用
www.
作为网站的主域:@Treffynnon:是的,我非常清楚这一趋势。我很难称之为“成长”。@LightnessR