2012-11-26 10 views
14

を使用してワイルドカードサブドメインの作成:私はこのような状況を持ちたいのApacheのVirtualHost

  1. 場合は、このURLを使用してユーザの要求:example.comまたはwww.example.com、 ユーザーはこのディレクトリにindex.php/home/admin1/public_html/

  2. が表示されますが、例えば、freediscount.example.comのように他のサブドメイン(ワイルドカード)を使用しているユーザーからのリクエストでは、index.phpがこのパスに表示されます。/home/admin1/public_html/userweb/freediscount.example.com

私のホスティング上の技術的なサポートは、私はこの方法を使用することをお勧め:そのチュートリアルに基づいてhttp://www.wiredstudios.com/php-programming/setting-up-wildcard-dns-for-subdomains-on-cpanel.html

、PHPは新しい仕事を持っている...とき、サブドメインとユーザの要求特定のフォルダにリダイレクトします。私はこの方法が嫌いです。私にとっては、Apacheがこれを処理できる方が良いでしょう。私は必要なものとほぼ近い

はこの方法です:Virtualhost For Wildcard Subdomain and Static Subdomain

しかし、私はそのような状況のために正しくVirtualHostを作成する方法を、VirtualHost設定に問題がありますか?ここ

は、私がやったが、うまくいきませんでした何:

## I think this one is for www or without www, automatically generated with WHM 
<VirtualHost xx.xx.xx.xx:80> 
ServerName example.com 
ServerAlias www.example.com 
DocumentRoot /home/admin1/public_html 
</VirtualHost> 

## Here's what I'm trying to add 
<VirtualHost xx.xx.xx.xx:80> 
    ServerName example.com 
    DocumentRoot /home/admin1/public_html/userweb/* 
</VirtualHost> 

答えて

14

Apache仮想ホストを使用すると、間違いなくワイルドカードサブドメインを使用できます。

私は基本的に同じ要件を持ち、Apacheのmod_vhost_alias.soモジュールで動作するように管理しました。私はこれをテストしていませんが、それは私のために働いたソリューションにかなり近いです

DocumentRoot "/home/admin1/public_html/userweb/" 
<Directory "/home/admin1/public_html/userweb/"> 
    Options None 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
</Directory> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName www.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    VirtualDocumentRoot /home/admin1/public_html/userweb/%1.example.com/ 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName example.com 
</VirtualHost> 

注:お使いのhttp-vhosts.confファイルでこれを試してみてください。私の解決策の

完全な詳細はここにある: http://www.calcatraz.com/blog/wildcard-subdomains-in-apache-1422

+0

今日のリンクが死んでいます。 – kontur

8

はこれで試してみてください:仮想ホストの

NameVirtualHost *:80 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName www.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/userweb/freediscount.example.com 
    ServerName other.example.com 
    ServerAlias *.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName example.com 
</VirtualHost> 

注文&その特異性の問題を。

+0

freediscount.example.com単なる一例です。現実の世界では、ユーザーが作成したサブドメインを入力できます。例えば:mystore.example.com >> /home/admin1/public_html/userweb/mystore.example.com –

+0

ですから、DocumentRootを静的にしてこの問題を解決するとは思いません。ダイナミックです。 –

+0

ワイルドカードDocumentRootを作成することはできません。あなたは.htaccessファイルまたはPHPを介してそれを行う必要があります。これは、そのままの状態でバーチャルホストで行うことができます。 MAybeあなたがしたいことを世話するapache modがあります。しかし、これは私の考えです。 –

関連する問題