【问题标题】:Manual Sub-Domain Construction手动子域构建
【发布时间】:2010-11-05 00:03:59
【问题描述】:

我想在我的website 上手动创建子域,因为在我当前的托管计划中我没有创建子域的选项。 我想也许这可以使用 .htacces???

请在答案中举两个例子 agrimgupta DOT com/oranges --> 博客 DOT agrimgupta DOT com/agrimgupta DOT com/work/UniV --> 学习 DOT agrimgupta DOT com/

提前致谢

【问题讨论】:

    标签: php .htaccess redirect subdomain


    【解决方案1】:

    这当然可以,但取决于您的主机设置。

    如果您能够创建通配符 DNS 条目,则可以将 agrimgupta.com 的所有子域映射到同一个 IP 地址。如果您的 Web 主机为您提供专用 IP 地址并使用基于 IP 的虚拟主机,则这些域都将指向您的 Web 应用程序。然后,您可以使用 mod_rewrite 或自定义 index.php 文件将请求路由到基于子域的不同资源。

    请注意,您在尝试将文件重新映射到正确的目录时会遇到一些障碍。

    当您访问 blog.agringpta.com 并将用户指向 /oranges 下的文件时,此示例 mod_rewrite 代码将执行简单的重定向。然而,用户实际上不会在 blog.agrimgupta.com 下“浏览”——这需要更多的努力才能完成。 (此时,您可以考虑切换到支持多个域/子域的 Web 主机。)

    <IfModule mod_rewrite.c>
        RewriteCond %{HTTP_HOST} blog.agrimgupta.com
        RewriteRule /$ http://www.agrimgupta.com/oranges/ [R=301,L]
    </IfModule>
    

    【讨论】:

    • 感谢详细的回复!所以基本上这只会重定向 blog.agrimgupta.com 的输入 uri 并将用户带到 agrimgupta.com/oranges ?还是有什么我没有得到的?我正在使用 profusehost (200MB) 完全免费计划
    • 是的,这是正确的,假设您可以将通配符主机名映射到同一个站点。许多大型虚拟主机将使用基于名称的虚拟主机,而不是基于 IP 的虚拟主机,在这种情况下,这可能行不通(无需更改 Web 服务器的配置)。
    • 唯一的问题是 Web 浏览器必须支持 HTTP 'Host' 标头才能指定使用哪个子域。否则,如果它们都去同一个 IP,应用程序将没有其他方法来检测子域。
    【解决方案2】:

    如果您的托管服务提供商不支持子域,您将无法在代码或 .htaccess 文件中手动管理它。原因是每个子域都需要存在于您域的 DNS 记录中,或者客户端应用程序中。将无法确定要连接的 IP 地址。

    【讨论】:

    • OP 没有提及他们的 DNS 是否由同一提供商托管 - 当然可以设置通配符 DNS 条目并让多个子域指向同一个 IP 地址。
    猜你喜欢
    • 2011-07-07
    • 2016-08-02
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    相关资源
    最近更新 更多