次のように、DebianSqueezeサーバーでApache2仮想ホストを設定しています。
ファイル名:whatever.mydomain.com
Alias /whatever /var/www/whatever.mydomain.com
<VirtualHost *:80>
ServerAlias whatever.mydomain.com
ServerAdmin [email protected]
VirtualDocumentRoot /var/www/%0
ErrorLog /var/log/Apache2/whatever.mydomain.com-error.log
CustomLog /var/log/Apache2/whatever.mydomain.com-access.log combined
</VirtualHost>
<Directory /var/www/whatever.mydomain.com>
AuthPAM_Enabled On
AuthType basic
AuthName "Authorization Required to proceed"
AuthBasicAuthoritative off
AuthUserFile /dev/null
Require valid-user
</Directory>
同じサイトに2つのURL(whatever.mydomain.comとwww.mydomain.com/whatever)を提供したいと思います。
したがって、この問題を解決するために、ファイルの先頭にエイリアス/whatever/var/www/whatever.mydomain.comを構成しました。しかし、これが良い習慣であるかどうかはわかりません。そして、VirtualHostの設定についてはどうですか?もっとうまくできることがありますか?
そして最後の質問:ファイル内で変数を使用する方法はありますか?例として、VirtualDocumentRoot以外の場所で%0を繰り返しますか?
前もって感謝します、
編集:私は新しい問題を抱えています。グローバルエイリアスを使用すると、すべての仮想ホストが/ whateverエイリアスに応答し、www.mydomain.comでのみエイリアスを適用する必要があります。現時点では、RedirectMatchに苦労していますが成功していません。エイリアスではアクセスログとエラーログが仮想ホストログファイルに記録されないため、エイリアスの代わりにリダイレクトを使用しています。
エイリアスを独自の仮想ホストに配置することをお勧めします。例えば:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAdmin [email protected]
DocumentRoot /var/www/whatever.mydomain.com
Alias /whatever /var/www/whatever.mydomain.com
ErrorLog /var/log/Apache2/www.mydomain.com-error.log
CustomLog /var/log/Apache2/www.mydomain.com-access.log combined
</VirtualHost>
それが私がやる方法ですが、もちろん、Apacheで物事を適切に行う方法はたくさんあります。それが機能する場合、それは機能します...
最後の質問について:設定ファイルで変数を実際に使用することはできませんが(いくつかの例外を除いて)、調査する価値のあるサードパーティのモジュールがあります。 1つはmod_macroです: http://people.Apache.org/~fabien/mod_macro/ 構成ファイルをより動的にするために使用できるもう1つはmod_Perlですが、これは非常に高度なトピックです。