我正在创建软件,允许用户拥有自己的自定义子域(例如:theirsubdomain.mydomain.com)或将CNAME从他们自己的域指向我的网站地址(例如:theirsubdomain.theirdomain.com).
我已经联系了我的主机,第一个子域名选项很酷.他们将为我设置一个wilcard子域脚本...
他们说CNAME我不能自动做.我将不得不手动进入我的帐户并添加域指向我的网站地址,否则apache现在不会在哪里查找文件.
这是常见的做法,还是有办法自动化?
问题在于 HTTP 标头。当您请求网页时,浏览器会发送一个以以下内容开头的请求:
GET /mypage.html HTTP/1.1
Host: www.mysite.com
Run Code Online (Sandbox Code Playgroud)
该Host项目允许单个 Web 服务器为多个域提供页面。通过查看Host,服务器知道 mypage.html 应来自其为 mysite.com 存储的文件,而不是来自同一服务器上的 myothersite.com 的文件。
我猜测您的站点位于托管公司的共享 Web 服务器上,并且他们使用此功能来区分对您站点的请求和对位于同一虚拟机上的其他站点的请求。其中一些虚拟主机(例如 HostGator)将允许您指定该行应接受的其他域Host以及返回的文档应来自的位置。这通常是公司提供的更优质的服务。例如,在 HostGator 上,他们说“Baby 和 Business 托管计划允许在一个帐户上托管无限的域名”,但是基本的 Hatchling 计划不允许这样做。
如果您有自己租用的机器,并且自己安装了 Apache,则可以自己管理此 HTTP 标头信息的处理。Apache支持虚拟主机,请参阅以下文档:http://httpd.apache.org/docs/2.2/vhosts/
所以基本上,您必须有某种方式告诉 Apache(或您正在使用的任何服务器)特定Host值的文件对应于您的域的相同文件,因为单个 Apache 服务器可能提供数百个不同域的文件。如果您不管理自己的 Apache 服务器,那么您可以按照文档中所示设置虚拟主机,托管服务必须提供某种自定义方式来将此信息传递给 Apache。
| 归档时间: |
|
| 查看次数: |
510 次 |
| 最近记录: |