あぱっちもひかんあんてなが反応したので

それApacheにパッチあてればできるよ!

--- httpd-2.2.22.orig/modules/metadata/mod_headers.c    2010-08-25 23:12:46.000000000 +0900
+++ httpd-2.2.22/modules/metadata/mod_headers.c 2012-12-11 16:51:07.000000000 +0900
@@ -200,6 +200,17 @@
         return "(null)";
 }

+static const char *header_request_notes_var(request_rec *r, char *a)
+{
+    const char *s = apr_table_get(r->notes,a);
+
+    if (s)
+        return unwrap_header(r->pool, s);
+    else
+        return "(null)";
+}
+
+
 static const char *header_request_ssl_var(request_rec *r, char *name)
 {
     if (header_ssl_lookup) {
@@ -853,6 +864,7 @@
     register_format_tag_handler("D", (const void *)header_request_duration);
     register_format_tag_handler("t", (const void *)header_request_time);
     register_format_tag_handler("e", (const void *)header_request_env_var);
+    register_format_tag_handler("n", (const void *)header_request_notes_var);
     register_format_tag_handler("s", (const void *)header_request_ssl_var);

     return OK;

このパッチをあてて、Apacheをビルドし直して、

CookieTracking on
RequestHeader set X-User-Track-Cookie %{cookie}n

のように設定すると、CGI側で、

HTTP_X_USER_TRACK_COOKIE => 127.0.0.1.1355212696374357

が取れました!

ちなみに CookieTracking は mod_usertrackの設定で、cookieというnotesにtracking用の値を入れてくれます。

逆にCGIからの出力をnotesに入れたい場合は、「modcopyheader ってのを書いた話 Re: Apache上のPerl FastCGIはCustomLogにデータを書くことができるか?」のエントリが参考になるよ!

このブログ記事について

このページは、Masahiro Naganoが2012年12月11日 17:14に書いたブログ記事です。

ひとつ前のブログ記事は「Apache HTTP ServerをRFC6585の"429 Too Many Requests"に(とりあえず)対応させるパッチ」です。

次のブログ記事は「Plack上でPHP(php-cgi)を動かす」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja