Поэтому я работаю над созданием собственного модуля Apache. Прямо сейчас я пытаюсь заставить его возвращать 403, просто чтобы проверить его, но кажется, что apache просто полностью игнорирует модуль и возвращает страницу по умолчанию. Вот соответствующие части моего кода:
static int request_hook(request_rec* r){
return HTTP_FORBIDDEN;
}
/* ********************************************
Register module to Apache
******************************************** */
static void register_hooks(apr_pool_t *p)
{
// We want to hook first so we can issue a deny ASAP if needed
ap_hook_log_transaction( request_hook, NULL, NULL, APR_HOOK_REALLY_FIRST);
}
module AP_MODULE_DECLARE_DATA my_module = {
STANDARD20_MODULE_STUFF,
NULL, /* dir config creater */
NULL, /* dir merger --- default is to override */
NULL, /* server config */
NULL, /* merge server configs */
NULL, /* command apr_table_t */
register_hooks /* register hooks */
};
И мой файл конфигурации apache выглядит так:
<VirtualHost *:80>
DocumentRoot /var/www/html
SetHandler my_module
</VirtualHost>
Он был скомпилирован путем выполнения
sudo apxs -i -a -c my_module.c && sudo service apache2 restart