Как перенести запрос из одного модуля apache в другой модуль?

Я создал сайт на основе 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.
}

1 ответ

Просто, правда. Вы используете подзапрос. В псевдокоде:

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 чтобы не обрабатывать ваши собственные подзапросы.

Другие вопросы по тегам