根据请求标头启用 apache 选项

根据请求标头启用 apache 选项

如果存在 HTTP 标头,我想使用不同的 apache 选项。

例如:

<IfHeader "MyHeader">
  SSLOptions +ExportCertData
  SSLVerifyClient optional
</IfHeader>

“IfHeader”指令不存在。可以使用 SetEnvIf 或其他指令吗?

答案1

您是否尝试过将 URL 内部重写到可以按照您想要的方式配置的位置?

像这样:

RewriteCond %{HTTP:MyHeader} .+
RewriteRule (.*) $1/special [R,L]

<Location ~ "/special$">
(...)
</Location>

答案2

当标题存在时,通过请求不同的文件,我能够获得所需的行为:

RewriteCond %{HTTP:MyHeader} .+
RewriteRule .* index_symlink.php [QSA,L]

<Files "index_symlink.php">
    SSLOptions +ExportCertData
    SSLVerifyClient optional
</Files>

答案3

代理。

如果您收到以某种方式格式化的标头,请将它们定向到按您的意愿配置的另一个端口上的服务器,或 LAN 上的另一个服务器。

答案4

是否可以设置多个 http 服务器实例(具有不同的配置)作为后端并在前端使用 proxy_mod/redirect ?

相关内容