我应该如何设置 apatch 以实现正确的子域名重定向

我应该如何设置 apatch 以实现正确的子域名重定向

我有一个域名,假设它是 domain.com。此域名指向一个装有 apache 的服务器,我在此服务器上为该域名运行三个网站,它们是:

domain.com (默认) dev.domain.com mail.domain.com

每个域名在我的 ~/public-www/ 文件夹中都有一个同名的目录。

我希望 www.domain.com 将我重定向到 domain.com,我希望 development.domain.com 将我重定向到 dev.domain.com,我希望 email.domain.com 和 epost.domain.com 将我重定向到 mail.domain.com,我希望所有其他子域都将我重定向到默认的 domain.com 站点。

我应该如何配置我的 apache2 网站才能像那样工作并进行正确的重定向。有人告诉我,为了让搜索引擎正确地索引和排名我的网站,重定向必须使用 301 重定向或类似的东西来完成。

答案1

您首先必须检查是否已激活虚拟主机并确保模块mod_rewrite已加载。

httpd.conf然后,在您的文件或单独的文件中写入您的不同虚拟主机:

  • 从 的虚拟主机开始domain.comdev.domain.com然后mail.domain.com
  • 然后,配置虚拟主机development.domain.comepost.domain.comemail.domain.com
  • 最后一个用于重定向www.domain.com和其他子域。

例如,为了重定向email.domain.commail.domain.com,您可以使用类似以下内容:

<VirtualHost *:80>
  ServerName email.domain.com
  ServerAlias epost.domain.com

  <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^(.*) http://mail.domain.com$1 [R=301,L]
  </IfModule>
</VirtualHost>

您可以使其适应development.domain.com

关于www.domain.com,您可以*.domain.comServerAlias指令中使用来匹配所有其他子域。

相关内容