Re[6]: Server.Transfer в ISAPI
От: ibnTeo Россия http://ibnteo.klava.org/
Дата: 14.02.03 14:55
Оценка:
L>>>Да легко. Только к 404 это имеет мало отношения. На этапе мапинга url'я ни ты, ни сервер не знаете, существует ли запрашиваемый ресурс.
T>>Может для вас это легко, подскажите хоть куда копать.

L>Почитать описание HTTPFilterProc в MSDN. Нотификация SF_NOTIFY_URL_MAP. Понять, что если хочется ремапить на что-нибудь отличное от статических страниц, то она не подходит. Прочитать про SF_NOTIFY_PREPROC_HEADERS и все, что с ней связано.


Спасибо большое, то что надо, все получилось

T>>Сейчас в доке роюсь, видимо что-то связанное с pCtxt->ServerSupportFunction();

T>>Хотя вряд-ли. Как бы подменить входящие данные...

L>Нет, ServerSupportFunction к вопросу перезаписи url'ей никак не относится. Хотя, она тоже может понадобиться.


T>>>>P.S. не смейтесь сильно, я новичок в C++

L>>>Пиши на дельфях, там вроде тоже можно ISAPI клепать.
T>>А что толку, здесь нужно разбираться в ISAPI, инструмент вряд-ли поможет.
T>>Да и если бы на дельфи писалось, то спрашивал бы в форуме по дельфям

L>Тогда нужно говорить, что новичек в ISAPI, а не в C++.

Одно другому не мешает, и уж если я чайник в C++, то с огромной вероятностью заодно и в ISAPI

L>Что-ты написать-то хочешь, если не секрет? А то может это уже давно написали.

Простой rewriter, но чтобы POST-заросы поддерживал. Если в IIS настроить обработку 404 на скрипт, то вообще обработать POST-запрос будет нереально.

DWORD CRewriterFilter::OnPreprocHeaders(CHttpFilterContext *pCtxt, PHTTP_FILTER_PREPROC_HEADERS pHeaders)
{
CHAR * url="/rewrite.asp";
BOOL res=pHeaders->SetHeader((HTTP_FILTER_CONTEXT*) &pCtxt, "URL", url);
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

В итоге исходный URL получаем в HTTP_X_REWRITE_URL
POST данные на месте
Надо еще проверку файла прикурить, чтоб зазря не реврайтить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.