【问题标题】:Domain and subdomain wildcards on Apache as dynamic subfoldersApache 上的域和子域通配符作为动态子文件夹
【发布时间】:2014-12-30 04:53:53
【问题描述】:

我正在创建类似weeblywix 格式的网站构建器。我想动态子文件夹。例如:

domain.com        /public_html/sites/domain.com/

sub1.root.com     /public_html/sites/sub1/

test.com          /public_html/sites/test.com/

sub2.root.com     /public_html/sites/sub2/

我只能用static来关注并强迫我一一添加整个网站。

<VirtualHost *:80>
    DocumentRoot "/public_html/sites/domain.com"
    ServerName domain.com
    ServerAlias *.domain.com
</VirtualHost>

我如何对客户所有者的域和我将给用户的子域进行动态处理。

【问题讨论】:

  • @arco444 这只是关于子域。我也需要动态ServerName 作为域。我无法捕获域。
  • 好的。我认为您不会为顶级域共享VirtualHost 而逃脱惩罚。您需要 3 个,其中一个用于 domain.comtest.comroot.com
  • @arco444 我可以为我的子文件夹中的主机域和子域做什么?我对通配符一无所知。

标签: apache subdomain wildcard


【解决方案1】:

对于基于您在
/public_html/sites/ 中创建的文件夹名称的动态域名配置,您可以使用ServerAliasVirtualDocumentRoot 指令。

在你的 apache 虚拟主机配置文件中添加类似这样的内容:

<VirtualHost *:80>
    ...
    ServerAlias *
    VirtualDocumentRoot /public_html/sites/%0
    ...
</VirtualHost>

要了解为什么使用 %0,请考虑将域 m.rate.movies.net 拆分为多个部分

Index:             %1      %2      %3       %4
Domain:             m     rate    movies    net
Negative Index:    %-4     %-3     %-2      %-1

我选择使用的%0代表整个域名——m.rate.movies.net。这允许您支持可以具有不同数量的由点分隔的部分的域名。这使得在 /public_html/sites/ 中创建的子目录成为指向您服务器 IP 的任何域名的文档根目录。

  /public_html/sites/domain.com        --> http://domain.com/
  /public_html/sites/blog.writers.org  --> http://blog.writers.org/
  /public_html/sites/m.rate.movies.net --> http://m.rate.movies.net/

如果你使用类似VirtualDocumentRoot /public_html/sites/%1的东西

您必须以这种方式创建子目录

  /public_html/sites/domain   --> http://domain.com/
  /public_html/sites/blog     --> http://blog.writers.org/
  /public_html/sites/m        --> http://m.rate.movies.net/

您也可以使用组合:VirtualDocumentRoot /public_html/sites/%-2\.%-1

  /public_html/sites/domain.com   --> http://domain.com/
  /public_html/sites/writers.org  --> http://blog.writers.org/
  /public_html/sites/movies.net   --> http://m.rate.movies.net/

另一种方式:VirtualDocumentRoot /public_html/sites/%-1/%-2/

  /public_html/sites/com/domain   --> http://domain.com/
  /public_html/sites/org/writers  --> http://blog.writers.org/
  /public_html/sites/net/movies   --> http://m.rate.movies.net/

通过这些设置,您无需在每次添加新域时都编辑虚拟主机配置。您将无法为每个域使用单独的日志文件,但为此,您可以使用包含主机名的custom log 格式。

【讨论】:

    猜你喜欢
    • 2013-09-13
    • 2020-05-18
    • 2021-11-14
    • 2013-07-13
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 2019-01-09
    相关资源
    最近更新 更多