如何使用Apache httpd将文件内容放入http请求标头

时间:2018-02-14 20:32:44

标签: apache

我可以向/ foo发送http请求,添加标头plaa请求,最后使用以下Apache httpd配置(foobar.conf文件)将请求重定向到/ bar ...

CustomStringconvertible

如何将plaa标头的值作为base64编码文件内容?

我可以想象我可以这样做......

<LocationMatch "/foo">

ProxyPass http://localhost/bar
ProxyPassReverse http://localhost/bar
ProxyPassReverse https://localhost/bar

RequestHeader set plaa "hello"

</LocationMatch>

但是我想知道是否有任何内置的方法来使用Apache。

1 个答案:

答案 0 :(得分:0)

Apache httpd不支持从文件中读取http标头内容。

这是在Unix环境中手动执行此操作的快速解决方法。

(如果您愿意,可以将以下步骤轻松放入脚本文件中。)

第1步。

    Go to 'location_where_apache_httpd_is_running:/etc/httpd/conf.d'

步骤2.为标题值创建文件。

    echo 'your base are belong to us' > header_value.txt

步骤3.将以下行写入文件apache_app.conf_base。

    Listen 8001
    ProxyPass /foobar/ http://localhost:8002/foobar
    ProxyPassReverse /foobar/ http://localhost:8002/foobar
    Header add App-Header "value"
    RequestHeader App-Header "value"

步骤4.用base64编码的header_value.txt替换'value'字符串。

    sed s_value_$(echo $(cat message.json | tr -d "\n\r") | base64 -w 0)_g apache_app.conf_base > apache_app.conf

步骤5.重新启动httpd

    service httpd restart

现在apache httpd根据apache_app.conf执行以下操作。

  1. 将来自localhost:8001 / foobar的请求重定向到localhost:8002 / foobar
  2. 将标题为“App-Header”的值作为base64编码行从文件header_value.txt附加。