使www.example.com和example.com使用相同会话变量的最佳方法是什么?

时间:2012-06-18 10:27:55

标签: php linux apache ubuntu apache2

我正在开发一个网页(我们称之为example.com)并在CNAME(别名)下添加了DNS记录:

Host Record Points    to  TTL
www  example.com       14400

但是,当我浏览example.com时,如果我访问www.example.com,则不会保留设置的会话变量

使www.example.com和example.com使用相同会话变量的最佳方法是什么?

我正在使用ubuntu 12.04,php5,apache2。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName www.example.com
    Redirect 301 / http://example.com/
    DocumentRoot /var/www/public_html
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/public_html>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

2 个答案:

答案 0 :(得分:13)

  

使www.mysite.com和mysite.com使用相同的会话变量的最佳方法是什么?

最好的方法是不要让两个主机名都运行同一个站点。

选择其中一个为规范,然后将所有内容从另一个重定向到规范的。

<VirtualHost *:80>
ServerName example.com
Redirect 301 / http://www.example.com
etc

答案 1 :(得分:2)

您应该采用的最佳方式是将mysite.com重定向到www.mysite.com,反之亦然 - 只为域别名提供一个网站(一个内容)...