Как перенести запрос из одного модуля 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
чтобы не обрабатывать ваши собственные подзапросы.