在 apache Linux 中使子文件夹到子域的形式


Making the sub folders to subdomain form in apache linux

我正在我的域上以以下格式创建子文件夹:

http://example.com/f1 .

我正在像这样创建文件夹。我想使用以下格式的 url 访问他们的内容:

http://f1.example.com不在http://example.com/f1.

我正在使用带有php的apache linux OS作为服务器语言。请帮忙。我该怎么做?

如果您的托管服务提供商支持 cPanel,您可以轻松创建子域。转到您的托管面板。找到名为"子域"的选项。在那里,您将能够在您的域下创建子域。

apache http 服务器正是为此目的提供了"虚拟主机"功能。该功能提供了一个非常好的文档,这是 apache 项目的典型特征:
http://httpd.apache.org/docs/2.4/en/vhosts

该文档还提供了一个方便的部分"常见设置的虚拟主机示例"。在那里,您可以看到一个完美的设置示例:

基本上,您为每个这样的文件夹定义一个"虚拟主机":

Listen 80
<VirtualHost *:80>
    DocumentRoot "/var/www/hosts/f1"
    ServerName f1.example.com
    # Other directives here
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/var/www/hosts/f2"
    ServerName f2.example.com
    # Other directives here
</VirtualHost>

这显然要求您控制 http 服务器,以便访问配置。如果不是这种情况,例如因为您自己操作系统,而是使用一些廉价的共享托管服务提供商,那么您应该查阅他们的文档如何实现这一点。他们可能会提供一些工具,以授予您对上述功能的有限访问权限。

通过该设置,您现在可以向两个单独的主机发出请求:

  • http://f1.example.com
  • http://f2.example.com

请注意,要使其正常工作,您还必须注意域名解析。主机名必须解析为 IP 地址,如果要使用不同的主机名,则无法解决此问题。如果两个主机名("子域"(解析为相同的 IP 地址,则通过 http 请求中的 HOST 标头来区分请求哪个主机。这也意味着对原始 IP 地址的请求将由默认主机提供服务,该主机是上述设置中定义的第一个主机。