Могу ли я отключить директиву Apache, а затем включить ее во включении? - PullRequest
0 голосов
/ 11 марта 2010

У меня есть блок VirtualHost, который включает в себя общие элементы конфигурации, одна директива - ProxyPreserveHost.

Могу ли я "процедурно" отключить ProxyPreserveHost для директивы Rewrite, а затем включить его снова? Например:

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

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

</VirtualHost>

Другой хост находится в CDN, и сохранение хоста создает некоторую проблему с разрешением имен, которая не позволяет передавать содержимое в пространство имен хоста.

ProxyReserveHost разрешен только в конфигурации сервера или VirtualHost. Не похоже, что я могу выборочно отключить его для директив ProxyPass и ProxyPassReverse (инкапсулированных в флаге прокси mod_rewrite).

1 Ответ

0 голосов
/ 12 мая 2010

Следующее, найденное в интернете, решило мою дилемму. Кроме того, существует открытый запрос на возможность настройки ProxyPreserveHost на уровне Location и Directory в проекте 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>
...