apache2 仮想ホスト用の設定ファイルがあります。各仮想ホストには、次のような設定ファイルがあります。
NameVirtualHost mydomain.co.uk:80
<VirtualHost mydomain.co.uk:80>
DocumentRoot /home/d/r/drupal/web/public_html
ServerName mydomain.co.uk
ServerAlias www.mydomain.co.uk
ErrorLog /var/log/apache2/sites/mydomain.co.uk_error-log
CustomLog /var/log/apache2/sites/mydomain.co.uk_access-log "combined"
# Rewrite the www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.mydomain.co.uk/?$ [NC]
RewriteRule ^(.*)$ http://mydomain.co.uk$1 [L,R=301]
# Read in the drupal configuration
Include conf.d/drupal6.conf
# Block access while developing
# Include conf.d/beta.conf
</VirtualHost>
myDomainを1か所で指定し、この文字列を再利用するにはどうすればよいでしょうか。
mydomain = "www.SomeDomainIHave.com"
ファイルの先頭でドメインを指定して、それより下の部分での間違いを回避するという考えです。
これが意味を成すといいのですが。
ありがとう。
答え1
あるいは、ほとんどの vhost が同様のテンプレートに従っている場合は、mod_macro を使用できます。最近、200 を超える同様の vhost を持つ Apache インストールにこれを設定しましたが、うまく機能しています。
あなたの例は次のように書き直されます: ( /etc/apache2/macro.d/drupal.vhost.conf (
<Macro drupal0 $domain>
NameVirtualHost $domain:80
<VirtualHost $domain:80>
DocumentRoot /home/d/r/drupal/web/public_html
ServerName $domain
ServerAlias www.$domain
ErrorLog /var/log/apache2/sites/$domain_error-log
CustomLog /var/log/apache2/sites/$domain_access-log "combined"
# Rewrite the www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.$domain/?$ [NC]
RewriteRule ^(.*)$ http://$domain$1 [L,R=301]
# Read in the drupal configuration
Include conf.d/drupal6.conf
# Block access while developing
# Include conf.d/beta.conf
</VirtualHost>
</Macro>
マクロの使用: ( /etc/apache2/sites-available/drupal.sites.conf )
Include /etc/apache2/macro.d/drupal.vhost.conf
Use drupal0 mydomain.co.uk
答え2
直接はできません。ただし、設定したいパラメータがたくさんある場合は、テンプレートベースのアプローチが考えられます。ファイル内の変数を置き換えるには、m4/sed/ruby/python を使用します。欠点は、何かを変更したときにファイルを再生成するプロセスが必要になることですが、これは自動化できます。
答え3
答え4
ケルティアがすでに述べたように変数を使用することはできませんが、おそらくmod_vhost_aliasあなたの問題を解決するのに役立ちます。
<VirtualHost 111.22.33.44>
ServerName www.commercial.isp.com
CustomLog logs/access_log.commercial vcommon
VirtualDocumentRoot /www/commercial/%0/docs
VirtualScriptAlias /www/commercial/%0/cgi-bin
</VirtualHost>
%0
この例では が に置き換えられますwww.commercial.isp.com
。
ここさらにいくつか例を挙げます。