我正在创建weebly
和wix
格式的网站构建器。我想动态子文件夹。例如:
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>
如何动态为我提供给用户的客户所有者和子域提供动态域名。
答案 0 :(得分:8)
根据您在中创建的文件夹的名称进行动态域名配置
/public_html/sites/
,您可以使用ServerAlias
和VirtualDocumentRoot
指令。
在apache virtualhost配置文件中添加以下内容:
<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格式。