Apache2 가상 호스트에 대한 구성 파일이 있습니다. 각 virtuahost에 대해 다음과 같은 conf 파일이 있습니다.
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을 한 곳에서 지정하고 이 문자열을 재사용하려면 어떻게 해야 합니까? 즉
mydomain = "www.SomeDomainIHave.com"
더 이상 실수를 피하기 위해 파일 상단에 도메인을 지정한다는 아이디어입니다.
이것이 의미가 있기를 바랍니다.
감사해요.
답변1
또는 대부분의 가상 호스트가 유사한 템플릿을 따르는 경우 mod_macro를 사용할 수 있습니다. 저는 최근에 200개 이상의 유사한 가상 호스트가 있는 아파치 설치를 위해 이것을 설정했는데 정말 매력적으로 작동하고 있습니다.
예를 들어 다음과 같이 다시 작성됩니다. ( /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
Keltia가 이미 말했듯이 변수를 사용하는 것은 불가능하지만 아마도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
.
여기더 많은 예가 있습니다.