テスト VPS で数十のサイトを実行していますが、現在 mod_vhost_alias を使用して、新しいサイトを立ち上げるたびに新しい VirtualHost が必要になるのを回避しています。私の現在の構成は次のようになります。
<VirtualHost *:80>
ServerName my.servername.com
ServerAlias *
VirtualDocumentRoot /var/www/%0/public_html
</VirtualHost>
私の /var/www ディレクトリ内には、各サイトに独自のディレクトリがあります。たとえば、私の個人ページへのパスは /var/www/personalsite.com/public_html/index.php です。これは、 http://personalsite.comへのリクエストに対してうまく機能しています。
ただし、これは、http: //www.personalsite.comに対する要求が入った場合には機能しません。私の他のサイトのいくつかでは、逆の問題があります。ディレクトリが /var/www/www.sitename.com/public_html である可能性があるため、http: //www.sitename.com の要求は問題ありません。ただし、http://sitename.comへのリクエストは機能しません。
リクエストが来たときに次のことを行うようにApache構成を設定する方法はありますか? この方法で行うことのパフォーマンスへの影響はありますか?
擬似コード:
1. Check if the directory or file exists. If it does, skip the rest of the rules
(but don't stop, in case a local .htaccess has rules in it for pretty URLs
in WordPress or Concrete5)
2. If the file/directory does not exist:
1. If the host header starts with "www":
1. remove the www from the host header and try the first rule again.
2. If the host header does not start with "www":
1. add "www" to the beginning of the host header and try the first rule again
3. If it still fails after trying both conditions:
1. Go to a 404 error page
現在、約 20 の仮想ホストでこれを行っていますが、サイトごとに新しい仮想ホストを追加する必要がある場合、それはばかげているように思えます。mod_vhost_alias を使用するポイントは、そもそもこれらすべての VirtualHosts を必要としないようにすることでした。