2014-02-26 69 views
0

給定一個用戶名,我想'動態'創建一個子域。通過Apache的動態子域

Create subdomains on the fly with .htaccess (PHP)

閱讀的答案,但它是很好的,它不是爲我工作,(我認爲),因爲我有我的服務器上的多個域(我問過我最初的問題在這裏https://superuser.com/questions/720911/wildcard-subdomain-being-redirected-to-the-wrong-domain/720913?noredirect=1#comment923298_720913)。

我的設立是

  • 的Linode VPS
  • 阿帕奇
  • Ubuntu的

我有多個域

  • abc.com
  • def.com

我想要我的第二個域上的動態子域(例如, x.def.com,y.def.com)。

所以我通過DNS管理器創建了一個通配符DNS條目。

但是由於「abc.com」是第一個已配置的域名,它似乎是以「x.def.com」的形式對任何子域名進行「全部捕獲」。

是否可以在我的設置中實現動態子域創建?

我的虛擬主機設置爲低於

# in file /apache2/sites-available/abc.com 
<VirtualHost *:80> 
    ServerName www.abc.com 

    DirectoryIndex index.php index.html 
    DocumentRoot /home/website/public/abc.com/public/ 
</VirtualHost> 

# in file /apache2/sites-available/def.com 
<VirtualHost *:80> 
    ServerName www.def.com 
    ServerAlias *.def.com 
    UseCanonicalName Off 

    DirectoryIndex index.php index.html 
    DocumentRoot /home/website/public/def.com/public/ 
</VirtualHost> 
+0

你可以發佈你當前的VirtualHost配置嗎?您需要正確設置您的ServerAlias才能選擇通配符子域。 – arco444

回答

0

該配置看起來不錯給我。確保你在你的主Apache配置文件中設置了NameVirtualHost *:80。如果你使用的是Ubuntu,這可能在ports.conf中。

您可以使用apachectl -S來檢查所有配置的VirtualHost。如果設置正確,它應該包含通配符別名。