【问题标题】:How to configure multileveled dynamic generated subdomains如何配置多级动态生成的子域
【发布时间】:2014-09-22 21:11:02
【问题描述】:

我想知道如何解决这种问题。首先我的目录树看起来像:

/var/www/sites/mydomain.com/
/var/www/sites/mydomain.com/public_html/
/var/www/sites/mydomain.com/subdomains/
/var/www/sites/mydomain.com/subdomains/user01/
/var/www/sites/mydomain.com/subdomains/user01/public_html/
/var/www/sites/mydomain.com/subdomains/user01/subdomains/
/var/www/sites/mydomain.com/subdomains/user01/subdomains/a/
/var/www/sites/mydomain.com/subdomains/user01/subdomains/b/
/var/www/sites/mydomain.com/subdomains/user01/subdomains/c/
/var/www/sites/mydomain.com/subdomains/user02/
/var/www/sites/mydomain.com/subdomains/user02/public_html/
/var/www/sites/mydomain.com/subdomains/user02/subdomains/
/var/www/sites/mydomain.com/subdomains/user02/subdomains/d/
/var/www/sites/mydomain.com/subdomains/user02/subdomains/e/
/var/www/sites/mydomain.com/subdomains/user02/subdomains/f/
/var/www/sites/mydomain.com/subdomains/user03/
/var/www/sites/mydomain.com/subdomains/user03/public_html/
/var/www/sites/mydomain.com/subdomains/user03/subdomains/
/var/www/sites/mydomain.com/subdomains/user03/subdomains/g/
/var/www/sites/mydomain.com/subdomains/user03/subdomains/h/
/var/www/sites/mydomain.com/subdomains/user03/subdomains/i/

我想问你如何配置我的 apache 虚拟主机以将子域更改为子目录,如上面的树动态检查目录是否存在,然后将子域更改为子目录:

http://(www\.)?mydomain.com /var/www/sites/mydomain.com/public_html/
http://(www\.)?user01.mydomain.com /var/www/sites/mydomain.com/subdomains/user01/public_html/
http://(www\.)?a.user01.mydomain.com /var/www/sites/mydomain.com/subdomains/user01/subdomains/a/public_html/
etc...

我试图使用 VirtualDocumentRoot 。 我用过

ServerAlias *.mydomain.com 

VirtualDocumentRoot /var/www/sites/mydomain.com/subdomains/%-3/public_html/ 

一个水平的子域效果很好,但我不知道如何使用第二、第三... n 级来做到这一点? 配置

ServerAlias *.*.mydomain.com 

VirtualDocumentRoot like /var/www/sites/mydomain.com/subdomains/%-3/subdomains/%-4/public_html/ 

没有给出预期的结果。 我几乎可以肯定我可以用 mod_rewrite 做到这一点,但不知道怎么做? 我尝试了很多配置,但可能我的知识还不够。

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.mydomain.com\\(.*)?$
RewriteCond %{REQUEST_URI} !subdomains/(.*)?
RewriteRule (.*) /var/www/sites/mydomain.com/subdomains/%1/public_html/%2 [L]

有人可以帮忙吗?

【问题讨论】:

  • 您能否用通俗易懂的语言描述用户体验方面的最终结果?
  • 我让我的朋友通过 ftp 访问我的服务器。我决定为每一个制作一个文件夹——只有三个,但我不会去学习一些东西。我建议他们为自己的页面创建目录 public_html 和子域。比我想将域myfrienddario.mydomain.com 指向目录/var/www/sitest/mydomain.com/subdomains/myfrienddario/public_html/。然后我想将他们的子域 http://(.*).myfrienddadrio.mydomain.com 指向 /var/www/sites/mydomain.com/subdomains/myfriendario/subdomains/(.*)/public_html/

标签: apache virtual subdomain hosts subdirectory


【解决方案1】:

我的解决方案

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{REQUEST_URI} !/subdomains/(.*)?
RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.([a-z0-9]+)\.([a-z0-9]+)\.mydomain.com(/(.*)?)?
RewriteRule ^(.*)$ /var/www/sites/mydomain.com/subdomains/%3/subdomains/%2/subdomains/%1/public_html/$1 [L]
RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.([a-z0-9]+)\.mydomain.com(/(.*)?)?
RewriteRule ^(.*)$ /var/www/sites/mydomain.com/subdomains/%2/subdomains/%1/public_html/$1 [L]
RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.mydomain.com(/(.*)?)?
RewriteRule ^(.*)$ /var/www/sites/mydomain.com/subdomains/%1/public_html/$1 [L]

【讨论】:

    猜你喜欢
    • 2014-08-07
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多