Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ IIS 6 Isapi筛选器-将请求转发或重定向到其他域_C++_Iis 6_Isapi_Isapi Rewrite_Isapi Redirect - Fatal编程技术网

C++ IIS 6 Isapi筛选器-将请求转发或重定向到其他域

C++ IIS 6 Isapi筛选器-将请求转发或重定向到其他域,c++,iis-6,isapi,isapi-rewrite,isapi-redirect,C++,Iis 6,Isapi,Isapi Rewrite,Isapi Redirect,下面的代码是iis6的Isapi过滤器的主要部分。 我需要将所有包含/some_字符串的请求重定向到其他url,该url位于其他域和其他服务器上。 怎么做 DWORD CAmgnIsapiFilter::OnPreprocHeaders(CHttpFilterContext* pCtxt, PHTTP_FILTER_PREPROC_HEADERS pHeaderInfo) { char buffer[256]; DWORD buffSize = sizeof(buffer

下面的代码是iis6的Isapi过滤器的主要部分。 我需要将所有包含/some_字符串的请求重定向到其他url,该url位于其他域和其他服务器上。 怎么做

DWORD CAmgnIsapiFilter::OnPreprocHeaders(CHttpFilterContext* pCtxt,
    PHTTP_FILTER_PREPROC_HEADERS pHeaderInfo)
{
    char buffer[256];
    DWORD buffSize = sizeof(buffer);
    BOOL bHeader = pHeaderInfo->GetHeader(pCtxt->m_pFC, "url", buffer, &buffSize); 
    CString urlString(buffer);
    urlString.MakeLower();

    if (urlString.Find("/some_string") != -1) //we want to redirect this file
    {
        urlString.Replace("/some_string","");
        urlString = "http://new_domain.cz/something" + urlString;

        char * newUrlString= urlString.GetBuffer(urlString.GetLength());
        pHeaderInfo->SetHeader(pCtxt->m_pFC, "url", newUrlString);
        return SF_STATUS_REQ_HANDLED_NOTIFICATION;
    }
    //we want to leave this alone and let IIS handle it
    return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

谢谢

您需要用302状态码响应,告诉浏览器您要重定向到的新URL

只需一个小的、非生产级的模板即可实现这一点:

//。。。 char-rsp[50]; wsprintfrsp,位置:%s\r\n\r\n,newUrlString; pfc->ServerSupportFunction pfc,SF_请求_发送_响应_头,PVOID 302重定向,DWORD rsp,0; //

而不是

pHeaderInfo->SetHeaderpCtxt->m_pFC,url,newUrlString

我想这是你唯一要做的事