web-dev-qa-db-ja.com

ワイルドカードサブドメインディレクトリ名

Apacheの設定には次のものがあります。

<VirtualHost *:80>
  VirtualDocumentRoot /var/www/hosts/%0
  ServerAlias *.test.galapagos.office
</VirtualHost>

/ var/www/hostsには、jason.test.galapagos.officeというディレクトリとbill.test.galapagos.officeというディレクトリがあります。ブラウザでjason.test.galapagos.officeにアクセスすると、期待どおりの結果が得られます。請求書と同じです。言い換えれば、すべてが完全に機能しています。

しかし、私は何が起こっているのか完全には満足していません。 /var/www/hosts/jason.test.galapagos.officeと/var/www/hosts/bill.test.galapagos.office/の代わりに、/ home/jason/webと/ home/bill/webが欲しいです。 。

代わりにこれらのサブディレクトリにマップするようにApacheに指示するにはどうすればよいですか?

ありがとう、ジェイソン

7
Jason Swett

これを試して:

<VirtualHost *:80>
  #VirtualDocumentRoot /var/www/hosts/%0
  VirtualDocumentRoot /home/%1/web
  ServerAlias *.test.galapagos.office
</VirtualHost>

「jason.test.galapagos.office」から「/ home/jason/web」にリクエストが送信されると思います

VirtualDocumentRootディレクティブの完全なリストは、次の場所にあります。

http://httpd.Apache.org/docs/2.2/mod/mod_vhost_alias.html

0名前全体
 1最初の部分
 22番目の部分
-1最後の部分
-2最後から2番目の部分
 2+ 2番目以降のすべての部分
-2 +最後から2番目とそれ以前のすべての部分
 1+および-1+は0と同じ
16
sysadmin1138

この変更は機能しますか?

VirtualDocumentRoot /home/%0/web

または、mod_userdirを有効にすることを検討してください。デフォルトではhttp://test.galapagos.office/~bill/

1
LatinSuD