Hello all! Today I tried to install mod_auth_digest (Apache 1.3.12). Installed without any problems, but when I request scripts with parameters in protected directory - ------------------------ Bad Request requested URI /manager/script.asp not equals /manager/script.asp?param_1=23 ------------------------ Or something like this. I now that mod_auth_digest is experemental module, it is just bug report. And another question. I need to place homepages of one user's group on one site, and another group on another. mod_userdir does not allow to do this. I found mod_userpath.c and change it slightly. Script doesn't work, and I don't know where I can read documentation about writing modules. I know that there is www.modperl.com and O'Reilly book (I'm not too reach to buy this book here - Russia), but may be you can tell me about another resources ? #include "httpd.h" #include "http_config.h" module userpath_module; #define DEFAULT_USER_PATH "/usr/local/etc/httpd/htdocs/" void *create_userpath_config (pool *dummy, server_rec *s) return (void*)DEFAULT_USER_PATH; } char *set_user_path (cmd_parms *cmd, void *dummy, char *arg) { void *server_conf = cmd->server->module_config; ap_set_module_config (server_conf, &userpath_module, ap_pstrdup (cmd->pool, arg)); return NULL; } command_rec userpath_cmds[] = { { "UserPath", set_user_path, NULL, RSRC_CONF, TAKE1, "the directory which contains all user html directories or 'disabled'" }, { NULL } }; int translate_userpath (request_rec *r) { void *server_conf = r->server->module_config; char *userpath = (char *)ap_get_module_config(server_conf, &userpath_module) ; char *name = r->uri; if (userpath != NULL && strcasecmp(userpath, "disabled") != 0 && name[0] == '/' && name[1] == '~') { char *w, *dname; dname = name + 2; w = ap_getword(r->pool, &dname, '/'); r->filename = ap_pstrcat (r->pool, userpath, "/", w, "/public_html", dna me, NULL); return OK; } return DECLINED; } module userpath_module = { STANDARD_MODULE_STUFF, NULL, /* initializer */ NULL, /* dir config creater */ NULL, /* dir merger --- default is to override */ create_userpath_config, /* server config */ NULL, /* merge server config */ userpath_cmds, /* command table */ NULL, /* handlers */ translate_userpath, /* filename translation */ NULL, /* check_user_id */ NULL, /* check auth */ NULL, /* check access */ NULL, /* type_checker */ NULL, /* fixups */ NULL /* logger */ }; ------------------------------------ Sergey Polyakov - Chief of WebZavod. http://www.webzavod.ru