- 論壇徽章:
- 0
|
搬家系列(7)
iplanet(Sun Java System Web Server)中用NSAPI的重定向?qū)崿F(xiàn)(NSAPI系列二)
flw10000 發(fā)表于 2006-12-18 22:42:00
作者:馮磊 (flw10000) MAIL:flw10000 AT 163.com
在iplanet中用NSAPI實(shí)現(xiàn)重寫向.
環(huán)境:
OS:linux 2.6.17
WebServer:iplanet 6.1
1> 修改配置文件
在magnus.conf文件中增加如下:
#e cho "Init fn=\"load-modules\" shlib=\"./Redirect\" funcs=\"RedirectTest\"" >> magnus.conf
在obj.conf文件中和 之間的AuthTrans下面加
AuthTrans fn="RedirectTest"
其實(shí)這里不止AuthTrans這一層可以重定向,筆者在如下幾層都測(cè)試成功:
NameTrans
PathCheck
ObjectType
Service
只要要相關(guān)鍵字后面加fn="RedirectTest"就可以了!
不過(guò)記的在每次更改配置文件以后都要重啟服務(wù)!
2> 程序代碼如下:
#cat Redirect.c
/*
* FileName:Redirect.c
* Compile:gcc -shared -DLINUX -D_REENTRANT -fPIC -DXP_UNIX –Ipath –Lpath Redirect.c –o Redirect
*/
#ifdef XP_WIN32
#define NSAPI_PUBLIC __declspec(dllexport)
#else /* !XP_WIN32 */
#define NSAPI_PUBLIC
#endif /* !XP_WIN32 */
#i nclude "nsapi.h"
#i nclude "base/util.h" /* is_mozilla */
#i nclude "frame/protocol.h" /* protocol_status */
#i nclude "base/shexp.h" /* shexp_cmp */
NSAPI_PUBLIC int RedirectTest(pblock *pb, Session *sn, Request *rq)
{
char *url = "http://www.google.cn";
pblock_nvinsert("url", url, rq->vars);
protocol_status(sn, rq, PROTOCOL_REDIRECT, NULL);
protocol_start_response(sn,rq);
return REQ_ABORTED;
}
#gcc -shared -DLINUX -D_REENTRANT -fPIC -DXP_UNIX –Ipath –Lpath Redirect.c –o Redirect
將生成的Redirect和配置文件放在同一個(gè)目錄就可以了!
(轉(zhuǎn)載請(qǐng)保持文章的完整性,請(qǐng)注明作者和出處)
馮磊 2006.12.18
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/28620/showart_504431.html |
|