如何正确检查 header 是否随请求发送

How to properly check whether header is sent along request or not

我有一个应用程序向 Restful API 发出请求,并且应该发送一个名为 X-PDONE-SESSION-ID 的参数。我需要检查 header 是否随请求发送,所以我启用并配置如下:

/etc/httpd/conf/httpd.conf
LoadModule log_forensic_module modules/mod_log_forensic.so

我启用了 VirtualHost,所以这是该 VH 的配置文件:

<VirtualHost *:80>
    ServerName admin.domain.local
    ServerAlias api.domain.local
    ServerAlias share.domain.local

    DocumentRoot /var/www/html/backend/web
    <Directory /var/www/html/backend/web>
        # enable the .htaccess rewrites
        AllowOverride All
        Order allow,deny
        Allow from All
    </Directory>

    ErrorLog logs/pdone-error.log

    # CustomLog with format nickname
    LogFormat "%h %l %u %t %r %{x-pdone-session-id}i %{Referer}i %{User-Agent}i %>s %b" common
    CustomLog logs/pdone-access.log common
</VirtualHost>

现在,下面几行应该可以完成工作:

LogFormat "%h %l %u %t %r %{x-pdone-session-id}i %{Referer}i %{User-Agent}i %>s %b" common
CustomLog logs/pdone-access.log common

但是这个 %{x-pdone-session-id}i 没有记录在日志文件中,我也尝试过将值 %{X-PDONE-SESSION-ID}i 大写,但都没有用。我得到了一个如下所示的日志文件:

192.168.3.1 - - [29/Jul/2015:10:22:19 -0430] "GET /app_dev.php/api/v1/reps/activity?_format=json&rid=00580000003AWtXAAW HTTP/1.1" 200 4369

我正在使用 Postman Chrome 扩展程序发出请求,并且我正在发送 header 如下图所示,否则代码会因未授权异常而失败并且代码可以工作,为什么我不能在发送 header 时看到 header 了吗?为什么值没有登录?我在这里缺少什么?

注意:如果图像显示不佳,请右键单击图像并在新选项卡中打开

昵称common 通常在主服务器配置中定义。只是不要将昵称 common 给其他日志格式,而是在主服务器中未定义的任何其他名称,这将是唯一的:

LogFormat "%h %l %u %t %r %{x-pdone-session-id}i %{Referer}i %{User-Agent}i %>s %b" pdone_common

在我看到你的问题之前我不知道,但在 VHost 配置中不能覆盖在主服务器配置中定义的昵称。