このような状況にしたい:
ユーザーがこのURLを使用してリクエストした場合:example.com
またはwww.example.com
、ユーザーはこのディレクトリにindex.php
を表示します/home/admin1/public_html/
しかし、ユーザーが他のサブドメイン(ワイルドカード)を使用して要求する場合(例: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
設定に問題があります。そのような状況で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>
ワイルドカードサブドメインは、Apache仮想ホストを使用して間違いなく可能です。
基本的に同じ要件があり、Apacheのmod_vhost_alias.so
モジュール。 http-vhosts.conf
ファイル:
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://www.calcatraz.com/blog/wildcard-subdomains-in-Apache-1422
これで試してください:
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>
仮想ホストの順序とその特異性が重要です。