我在 mydomain.com 上运行应用程序,当 abc 客户要求提供我的应用程序实例时,我会创建一个子域(如 abc.mydomain.com)并将应用程序副本放入该子域。这样就没问题了。
当 abc 请求他们自己的域名如“abc.com”时,我需要将 abc.com 指向 abc.mydoamin.com。
我该怎么做?我的应用程序是在 apache2 上运行的 php 应用程序。
我需要使用 CNAME 重新编码来执行此操作
我尝试将 CNAME 重新编码到 abc.com 区域文件以指向 abc.mydomain.com,但它没有显示 abc.mydomain.com 的内容。它显示 Apaches 默认页面(“它有效”)。
IN NS ns1.mydomainserver.net;
@ IN CNAME abc.mydomain.com;
这有什么问题? 有没有办法在不触及 apache 上的 vhost 文件的情况下做到这一点?
答案1
您需要在 Apache 的 Vhost-config 中添加别名。
<VirtualHost ip1 ip2>
DocumentRoot /www/abs
ServerName abc.mydomain.com
ServerAlias abs.com
...
</VirtualHost>
答案2
您需要以下信息才能让您的应用与 abc.com 兼容
您需要拥有指向 mydomain.com 的 abc.com 域的 CNAME 记录。
您需要在 apache 配置中创建一个 ServerAlias,其中包含 abc.com
第一个必须由 abc.com 的所有者/管理员完成。第二个应该在您自己的服务器上。
答案3
如果您无法编辑 abc.mydomain.com 网站的虚拟主机条目(这是执行此操作的最佳位置;请参阅其他人的帖子),则需要在某处进行重定向:
- abc.com 的 DNS“控制面板”可能有一个您可以执行的“Web 重定向”类型的选项。
- 在 abc.com 的网络服务器上(如果它在某处设置/托管),您可以将网络服务器设置为返回 HTTP 301 或 302 和 abc.mydomain.com(Apache 和 IIS 都可以做到这一点)
- 你可以将 index.php 与
header('Location: http://abc.mydomain.com/');
- 如果 PHP 不可用,您可以执行
<meta http-equiv="refresh" content="0;url=http://abc.mydomain.com/">
但不建议这样做。