【问题标题】:Www and non www sitesWww 和非 www 网站
【发布时间】:2011-05-01 20:03:04
【问题描述】:

我有一个域名http://www.testexample.com。当我登录http://www.testexample.com 并在浏览器中返回http://testexample.com 时;不显示登录用户信息。
我知道以上两者的处理方式不同,因此在访问http://testexample.com 时不会保留http://www.testexample.com 的会话。

如果 cakephp 有办法在 TLD 上进行匹配,请告诉我。所以每当我输入http://testexample.com 它应该为http://www.testexample.com 进行会话

我正在使用以下代码从一个 URL 重定向到另一个

RewriteCond %{HTTPS} off   
RewriteCond %{HTTP_HOST} ps6309 [NC]   
RewriteRule ps6309.domain.co.in [L,R=301]

这是在我的本地测试机器上。这有时有效,有时无效。
我还在我的 httpd.conf 文件中添加了 rewritelog 指令。 但是日志文件没有得到更新。 请让我知道是否有人对此有任何指示。

【问题讨论】:

标签: php cakephp


【解决方案1】:

使用 .htaccess 重定向所有http://domain.com -> http://www.domain.com

RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]

【讨论】:

  • 你先发布了,那是你删除了我的 :-)
  • 我认为这是一个更好的解决方案,因为这样用户将只使用一个域,并且体验不会那么混乱(例如,如果他访问两个域,访问的链接会发生变化)。此外,缓存更好,因为每个资源只有一个副本。
  • 完全正确 - 提供两个 url 是没有意义的。在 '' 上使用 'www'。
  • 我正在使用 CakePHP 以及我将如何格式化您的用户以适应 app/webroot 像这样-> RewriteRule ^(.*)$ app/webroot/$1 [R=permanent,L]。我想添加“www”。在应用程序/webroot 之前。谢谢。
【解决方案2】:

设置cookie的域为testexample.com,这样就可以跨子域共享,不用担心www。

【讨论】:

  • 我正在使用 Cakephp Auth 组件进行会话,并且用户信息来自同一个。那会用cookies实现吗?
  • 即使您使用会话,仍然会创建 cookie,以便用户可以与服务器上的会话文件(或表)匹配。我不知道 Cake,从未使用过,但看看这个,可能会为您指明正确的方向。 kodegeek.wordpress.com/tag/cakephp
【解决方案3】:

如果您有很多项目并且不想一遍又一遍地在 .htaccess 上硬编码您的域名,请尝试以下代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

这会将非 www 重定向到 www。当您使用 cakephp 时,请将其放在位于 /webroot 的 .htaccess 中

【讨论】:

  • +1 这是将www 添加到您的域的更好方法,但更好的是:RewriteRule . http://www.%{HTTP_HOST}/%{REQUEST_URI} [R=301,L]
【解决方案4】:

试试ini_set('session.cookie_domain', $domain);(记录在as ini_set session.cookie_domainsession_set_cookie_params()),其中$domain是您的域名,以.为前缀。因此,使用域 example.com(每个 rfc 2606),您将使用:

ini_set('session.cookie_domain', '.example.com');

请注意,这不是 CakePHP 特定的解决方案 - 查看 the code for CakeSessionsession.cookie_domain 从未设置,这意味着它属于默认值。将该行填充到您的 app/config/bootstrap.phpapp/config/core.php 中应该可以为您完成。

【讨论】:

    猜你喜欢
    • 2013-12-23
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    相关资源
    最近更新 更多