我已经构建了一个基于joomla的网站,并使用Apache服务器提供服务。 我现在必须构建一个模块来检查来自URI的请求的合法性,如果URI满足某些约束,Apache然后让它访问正常的Joomla网站,否则返回HTTP_BAD_REQUEST。
例如,如果URI包含<script>
,Apache将返回HTTP_BAD_REQUEST。否则,它允许客户端访问joomla网站。那么我该如何编写ELSE部分。
static int my_apache_module_function(request_rec *r)
{
if (strstr(r->args, "<script>") != NULL)
{
return HTTP_FORBIDDEN;
}
else
//direct the client to normal joomla homepage.
//I need your help here. I am really thankful for any clues.
}
答案 0 :(得分:1)
简单,真的。你使用subreqeust。在伪代码中:
if (r->main != NULL) return AP_DECLINED // Ignore the subrequests.
sub = ap_sub_req_lookup_uri (r->unparsed_uri, r, NULL);
rc = ap_run_sub_req (sub);
ap_destroy_sub_req (sub);
return rc
诀窍是检查r->main
以便不处理您自己的子请求。