2010-03-11 3 views
0

J'ai un bloc VirtualHost qui inclut des éléments de configuration courants, une directive est ProxyPreserveHost. Puis-je "procéduralement" désactiver ProxyPreserveHost pour une directive de réécriture puis l'inclure le rallumer? Par exemple:Puis-je désactiver une directive Apache puis l'allumer dans un include?

<VirtualHost *:80> 
ServerName www.blah.com 
... 
... 
ProxyPreserveHost off 
RewriteRule /somepath http://otherhost/otherpath [P] 

Include /path/to/file/turning-on-ProxyPreserveHost 

</VirtualHost> 

Le otherhost est sur un CDN et la préservation de l'hôte est la création d'une question de résolution de noms qui ne permet pas au mandatement de contenu dans l'espace de noms d'hôte.

ProxyReserveHost n'est autorisé que dans une configuration serveur ou VirtualHost. Il ne semble pas que je puisse désactiver sélectivement pour les directives ProxyPass et ProxyPassReverse (encapsulé dans l'indicateur de proxy de mod_rewrite).

Répondre

0

Ce qui suit, trouvé sur Internet, a abordé mon dilemme. En outre, il existe une demande de fonctionnalité ouverte pour rendre ProxyPreserveHost configurable au niveau Emplacement et Répertoire dans le projet Apache HTTPD.

 
<IfModule mod_headers.c> 
    <Proxy "http://${build.replace.host}/"> 
    RequestHeader set Host ${build.replace.external.host} 
    </Proxy> 
    RewriteRule  ^/proxypath/ http://${build.replace.external.host}/path/to/resource.html [P] 
    ProxyPassReverse /proxypath/ http://${build.replace.external.host}/path/to/resource.html 
</IfModule> 
Questions connexes