You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Allasso Travesser <al...@gmail.com> on 2013/12/14 16:24:00 UTC

[users@httpd] Using SetHandler directive breaks default DirectoryIndex

Hello,

I created a module with a handler and flagged it using SetHandler directive from within a Directory entry. When I did this, I observed that the DirectoryIndex directive no longer works.  i.e., if I have index.html in the site’s root directory, typing the root url gives 404.  I tried on other modules, and I tried with a module that I stripped down to a skeleton, and still does the same.  Then I finally discovered that in fact, I can make up an arbitrary SetHandler entry that doesn’t correspond to any module, and I still get the same effect.

———————

[error] [client xxxxxx] Attempt to serve directory: /home/allasso/public_html/

--------------

configuration:

<Directory /home/allasso/public_html>

 SetHandler dumpheaders-handler

 …
</Directory>

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

(note, I also tried adding DirectoryIndex entry inside <Directory /home/allasso/public_html> but it had no effect)

---------------


FWIW, here is skeleton module:

#include "httpd.h"
#include "http_config.h"
#include "http_main.h"
#include "http_protocol.h"
#include "http_core.h"
#include "http_log.h"

static int handler(request_rec *r)
{
   if (!r->handler || strcmp(r->handler, "dumpheaders-handler")) return (DECLINED);

   ap_set_content_type(r, "text/html");
   ap_rprintf(r, "<p>Dumping headers...</p>\n");

   return OK;
}

static void register_hooks(apr_pool_t *pool)
{
   ap_hook_handler(handler, NULL, NULL, APR_HOOK_FIRST);
}

module AP_MODULE_DECLARE_DATA dumpheaders_module =
{
   STANDARD20_MODULE_STUFF,
   NULL,
   NULL,
   NULL,
   NULL,
   NULL,
   register_hooks,       /* set up other request processing hooks */
};

—————————

But as I said, a module doesn’t even need to exist.

Can anyone shed some light on this behavior?

Thank you kindly,

Allasso Travesser
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org