搬家系列(7)
iplanet(Sun Java System Web Server)中用NSAPI的重定向实现(NSAPI系列二)
flw10000 发表于 2006-12-18 22:42:00
作者:冯磊 (flw10000) MAIL:flw10000 AT 163.com
在iplanet中用NSAPI实现重写向.
环境:
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"
其实这里不止AuthTrans这一层可以重定向,笔者在如下几层都测试成功:
NameTrans
PathCheck
ObjectType
Service
只要要相关键字后面加fn="RedirectTest"就可以了!
不过记的在每次更改配置文件以后都要重启服务!
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 = "";
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和配置文件放在同一个目录就可以了!
(转载请保持文章的完整性,请注明作者和出处)
冯磊 2006.12.18
阅读(1916) | 评论(0) | 转发(0) |