2014-09-22 31 views
0

我想知道如何解決這類問題。首先,我有目錄樹的樣子:如何配置多級動態生成的子域名

/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] 

任何人都可以幫忙嗎?

+0

你能在平實的語言描述了最終結果應該是在用戶體驗方面是什麼? – 2014-09-22 21:56:56

+0

我讓我的朋友通過ftp訪問我的服務器。我決定爲每一個文件夾做一個文件夾 - 只有三個文件夾,但我不會去學習。我建議他們爲自己的網頁創建dirs public_html和子域名。比我想指向域http://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/ – MEAT 2014-09-22 22:24:04

回答

0

我的解決方案

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]