When both PHP and mod_dav are enabled, how can I force PHP to be the
content handler of a PHP resource, vs. mod_dav?

I contributed a WebDAV module to the PHP Gallery project and some users
have reported that mod_dav interferes with it:
http://gallery.menalto.com/node/62232

I reproduced the problem on my own Apache server. I have:

        AddHandler x-httpd-php .php .php3 .php4 .php5 .phtml
        suPHP_AddHandler x-httpd-php
        suPHP_Engine on

All requests are handled by PHP and I can mount the Gallery PHP script
with a WebDAV client. However when I add:

<Location /~jablko/gallery2>
       Dav On
</Location>

WebDAV requests are handled by mod_dav and I can't mount the Gallery PHP
script.

I'm searching for a way to disable mod_dav in the Gallery directory.
According to: http://httpd.apache.org/docs/2.2/mod/mod_dav.html#dav

        Note, that once you have DAV enabled for some location, it
        cannot be disabled for sublocations.

So if mod_dav is enabled on "/~jablko", I can't disable it for
"/~jablko/gallery2".

This page discusses the oposite problem: WebDAV requests being handled
by PHP instead of mod_dav:
http://www.webdav.org/mod_dav/install.html#complex

It says modules may asset themselves as the content handler during
request processing, which I guess is what mod_dav is doing. I tried
overriding mod_dav with:

        AddHandler x-httpd-php .php .php3 .php4 .php5 .phtml

Without success.

Any idea how I can override mod_dav and force PHP to be the content
handler for the Gallery PHP script?

Thanks! Jack

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to