2010-03-11 5 views
0

공통 구성 항목을 포함하는 VirtualHost 블록이 있고, 하나의 지시어는 ProxyPreserveHost입니다.Apache 지시문을 해제 한 다음 포함에서 켤 수 있습니까?

Rewrite 지시어에 대해 ProxyPreserveHost를 "절차 적으로"해제 한 ​​다음 포함을 다시 활성화 할 수 있습니까? 예를 들어 :

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

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

</VirtualHost> 

otherhost은 CDN에 호스트를 유지하면 호스트 네임 스페이스에있는 내용의 프록시를 허용하지 않습니다 일부 이름 확인 문제를 만드는 것입니다.

ProxyReserveHost는 Server Config 또는 VirtualHost에서만 사용할 수 있습니다. ProxyPass 및 ProxyPassReverse 지시문 (mod_rewrite의 프록시 플래그로 캡슐화 됨)에 대해 선택적으로 해제 할 수있는 것처럼 보이지 않습니다.

답변

0

인터넷에서 발견 된 다음은 나의 딜레마를 다뤘습니다. 제쳐두고 Apache HTTPD 프로젝트 내의 위치 및 디렉토리 레벨에서 ProxyPreserveHost을 구성 할 수있는 공개 기능 요청이 있습니다.

 
<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> 
관련 문제