ユーザ用ツール

サイト用ツール


Sidebar

ミドルウェア系:apacheモジュール:apr_table_get_r-_headers_in_host_について

apr_table_get(r->headers_in, "HOST")について

これを実行すると、ポートを80番以外使った場合はポート番号がくっついてくる。

そうすると、Vhostネームの比較の際に、falseになってしまうので、次のような実装追加が必要。

const char *header_name;
const char *alias_name;
char *access_host;
 
header_name = apr_table_get(r->headers_in, "HOST");
access_host = strtok((char *)header_name, ":");
if (access_host == NULL)
    access_host = (char *)header_name;
 
if (strcmp(access_host, r->server->server_hostname) == 0) {
    vlimit_debug_log_buf = apr_psprintf(r->pool, "Match: access_name=(%s) ServerName=(%s)"
        , access_host
        , r->server->server_hostname
    );
    VLIMIT_DEBUG_SYSLOG("check_virtualhost_name: ", vlimit_debug_log_buf, r->pool);
    return 0;
}
ミドルウェア系/apacheモジュール/apr_table_get_r-_headers_in_host_について.txt · 最終更新: 2013/04/29 21:55 by matsumoto_r