0

我正在与 Contao (TypoLight) 合作。

我们在同一个 Contao 安装上有多个站点。这也意味着它是同一个根文件夹。每个站点都有自己的入口点,至少它应该有。

现在假设我有站点 A (www.sitea.com) 和站点 B (www.siteb.com)。

站点 A 需要可通过 www.sitea.com 访问

站点 B 需要可通过 www.siteb.com 访问

现在根据手册,每个站点配置都应该在入口点输入自己的域名。我已经这样做了,但现在 www.siteb.com 正在重定向到 www.sitea.com。

有谁知道为什么会发生这种行为?还是我需要等待任何 DNS 更新?还是我需要在 .htaccess 中指定任何重写规则?

干杯!

4

2 回答 2

1

对于站点结构中的每个入口点,配置不带“www”的域名:

  • 对于sitea.com:sitea.com
  • 对于siteb.com:siteb.com

站点结构中的 dns 设置

创建一个 htaccess(您的 webroot 中的 .htaccess 文件)并将主机配置为从 www.site[a,b].com 重定向到http://site[a,b].com

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

Contao 现在能够正确路由。

于 2015-08-02T09:33:42.230 回答
0

答案可能与 htaccess 或其他任何内容无关。这可能与虚拟主机有关。以下是您可能已经完成的操作,如果没有,这应该可以解释为什么您的配置不起作用:

在 httpd.conf 文件中,有时您包含一个 vhosts 目录。

如果没有,这就是我要做的:我设置 Apache 以便它读取特定目录中的所有虚拟主机(它几乎位于 httpd.conf 文件的末尾,因此在包含虚拟主机之前应用默认指令):

# Include Virtualhosts directory:
NameVirtualhost *
Include /web/vhosts/

然后在目录中,我设置了我所有的虚拟主机:

olivier@Tt /web/vhosts # find . | sort
./labyz.vhost.conf
./olivierpons.vhost.conf
./wipwip.vhost.conf
./wogwog.vhost.conf
olivier@Tt /web/vhosts # 

然后对于每个虚拟主机,我都会制定自己的指令。示例(全部重定向到http://disneyland.fr/):

<VirtualHost *>

    ServerAdmin webmaster@olivierpons.fr
    DocumentRoot "/web/htdocs/olivierpons/prod"

    ServerName olivierpons.fr
    ServerAlias *.olivierpons.fr
    ErrorLog "/web/logs/olivierpons.error.log"
    CustomLog "|/opt/httpd/bin/rotatelogs /web/logs/olivierpons.fr/access.%Y-%m-%d-%H_%M_%S.log 5M" combined

    RewriteEngine On
    RewriteRule (.*) http://disneyland.com$1 [QSA,R=301,L]
</VirtualHost>

sitea.com.vhost.conf注意:在您的情况下,vhost 文件siteb.com.vhost.conf具有相同的DocumentRoot.

你有没有这样做过?

于 2011-11-17T14:31:46.810 回答