我有一个域名,假设它是 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.com
,dev.domain.com
然后mail.domain.com
- 然后,配置虚拟主机
development.domain.com
,epost.domain.com
并email.domain.com
- 最后一个用于重定向
www.domain.com
和其他子域。
例如,为了重定向email.domain.com
到mail.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.com
在ServerAlias
指令中使用来匹配所有其他子域。