【问题标题】:make all subdomains access website root files使所有子域访问网站根文件
【发布时间】:2011-09-23 08:20:19
【问题描述】:

这是我想做的:

  • 假设我有 www.mysite.com,它是一个包含大量文件的复杂网站
  • 我想让fr.mysite.com,it.mysite.com,uk.mysite.com访问根网站中的文件(即:fr.mysite.com/jobs.php实际上会加载mysite.com /jobs.php 但在浏览器 url 中会显示带有子域的链接)。
  • 我想建立一个包含来自多个国家/地区的内容的网站,并且我希望每个国家/地区都可以使用其代码作为子域进行访问。如果我能做到这一点,我就可以在 php 中处理 url 并知道它在 url 中的国家代码。
  • 不能将整个网站复制到每个子域文件夹。

如果您对如何执行此操作有任何想法,请告诉我,我想这是一个 .htaccess 的东西,但我无法弄清楚。

【问题讨论】:

    标签: .htaccess dns subdomain


    【解决方案1】:

    VistualHost 配置中使用ServerAlias:将其设置为单个虚拟主机,其中所有子域都指向同一个根文件夹:

    <VirtualHost *:80>
        ServerName mysite.com
        ServerAlias *.mysite.com
        DocumentRoot "\path\to\your\site\"
        ...
    </VirtualHost>
    

    这是最推荐的方式——这里不需要涉及 URL 重写。

    【讨论】:

    • 您好,谢谢您的回复。我尝试了您的代码,但出现“内部服务器错误”(例如当您的 .htaccess 配置不正确时)。那三个点“……”一定有吗?顺便说一句,我在 godaddy 使用共享主机,但我没有专用 IP。
    • @Adrian 三个点代表其余可能的配置。在你的真实配置中不应该是这样的。无论如何 - 如果托管在 GoDaddy 共享托管计划上,您将无法使用此代码。 1) 使用 GoDaddy DNS 管理器创建额外的子域。 2)使用他们的主机控制面板将任何子域指向与主域相同的文件夹(可能会在此控制面板中创建子域,因此无需执行#1)。如果您不知道如何使用他们的控制面板,请参阅他们的手册。我没有在那里托管 ATM,无法为您检查。
    • 感谢您的帮助,我设法从托管控制面板中实现了我想要的。干杯
    猜你喜欢
    • 1970-01-01
    • 2014-02-03
    • 2020-04-04
    • 2013-08-07
    • 1970-01-01
    • 2016-07-17
    • 2014-08-10
    • 2022-11-26
    • 1970-01-01
    相关资源
    最近更新 更多