サブドメインごとに完全に個別のドキュメント ディレクトリを設定するのが理想的です。 vhost
Apacheで行く方法です。ただし、自分のやり方でやりたい場合 (サブドメインが個々のファイルにリダイレクトする場合) は、もう少し手間がかかりますが、それでも実行可能です。まず、mod_vhost
with ワイルドカードを定義します。
<VirtualHost 111.22.33.55>
DocumentRoot /www/subdomain
ServerName www.mydomain.com
ServerAlias *.mydomain.com
...
</VirtualHost>
次に、このVirtualHost
セットアップ内で、次を使用してルールを書き換えますmod_rewrite
。
<Location "/">
RewriteCond %{HTTP_HOST} ^user1.mydomain.com$
RewriteRule ^\/$ http://www.mydomain.com/index2.php [R=301,L]
RewriteRule ^\/index.php$ http://www.mydomain.com/index2.php [R=301,L]
RewriteCond %{HTTP_HOST} ^user2.mydomain.com$
RewriteRule ^\/$ http://www.mydomain.com/index3.php [R=301,L]
RewriteRule ^\/index.php$ http://www.mydomain.com/index3.php [R=301,L]
...
</Location>
ただし、これはサブドメインに対してのみ適切/
に機能することに注意してください。/index.php
これ以上のことを行う場合は、サブドメインごとに個別のドキュメント ルート ディレクトリを設定することをお勧めします。