2

CMSのURL書き換えを行うために使用しているISAPIフィルターがあります。SF_NOTIFY_PREPROC_HEADERS通知を処理しており、これを実行しようとしています。

DWORD ProcessHeader(HTTP_FILTER_CONTEXT *con, HTTP_FILTER_PREPROC_HEADERS *head)
{
    head->SetHeader(con, "test1", "aaa");
    con->AddResponseHeaders(con, "test2:bbb\r\n", 0);
    return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

ただし、従来のASPまたはPHPでサーバー変数または応答ヘッダーを使用してこれらの値を読み取ることはできないようです。値がありません。「test1」または「test2」ヘッダー値のいずれかが表示されることを期待していますが、表示されません。私はここで何か間違ったことをしていますか?

4

2 に答える 2

2

私はついにそれを理解しました、私はヘッダー名に「:」がありませんでした:

DWORD ProcessHeader(HTTP_FILTER_CONTEXT *con, HTTP_FILTER_PREPROC_HEADERS *head)
{
    head->SetHeader(con, "test1:", "aaa");
    return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

これにより、「HTTP_TEST1」というサーバー変数が作成されます。

于 2010-03-18T18:38:26.143 に答える
1

正しいようです。ただし、どちらのメソッドも。を返しますBOOLGetLastError()それらを確認し、戻ってきたら電話してくださいFALSE
編集:
よくわかりませんが、SF_STATUS_REQ_FINISHEDの代わりに戻ってみることもできますSF_STATUS_REQ_NEXT_NOTIFICATION

于 2010-03-18T17:19:32.823 に答える