Apache + PHP problem, can't reply to OPTIONS request.

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Allman

    Apache + PHP problem, can't reply to OPTIONS request.

    I'm trying to implement a small WebDAV server using PHP. (WebDAV is an HTTP

    extension that (among other things) makes it possible to manage files using

    the HTTP protocol; kinda in the same way like using FTP through a

    web-browser.)


    I've made a short index.php file which is automatically run when then target

    directory is accessed using a browser; so, if I try to browse

    http://mysite.com/webdav/, http://mysite.com/webdav/index.php is executed.


    Inside index.php I have the following logic:

    [...]

    switch ( $_SERVER["REQUEST_METHOD "] )

    {

    // List contents of current directory.

    case "PROPFIND":

    {

    // Code for doing directory listing goes here.

    }break;

    // Options:

    case "OPTIONS":

    {

    // Send a specific reply / identify ourself.

    }break;

    // GET/Download file

    case "GET":

    {

    // Code for sending a file to the client goes here.

    }break;

    [...etc...]

    }

    [...]


    When I try to use M$ Internet Explorer to access http://mysite.com/webdav/

    (the index.php file is executed), the following lines are added to apache's

    access.log:


    10.0.2.164 - - [28/Jul/2003:16:30:26 +0200] "GET /_vti_inf.html HTTP/1.1"
    404

    285 "-" "Mozilla/2.0 (compatible; MS FrontPage 5.0)"

    10.0.2.164 - - [28/Jul/2003:16:30:26 +0200] "POST
    /_vti_bin/shtml.exe/_vti_rpc

    HTTP/1.1" 404 299 "-" "MSFrontPag e/5.0"

    10.0.2.164 - - [28/Jul/2003:16:30:26 +0200] "OPTIONS / HTTP/1.1" 200 - "-"

    "Microsoft Data Access Internet Publishing Provider Protocol Discovery"

    10.0.2.164 - - [28/Jul/2003:16:30:26 +0200] "OPTIONS /webdav HTTP/1.1" 400
    293

    "-" "Microsoft Data Access Internet Publishing Provider Protocol Discovery"


    Forget the first two lines (this is just some M$ specific stuff), the third

    line is also unimportant since the server automatically replies with HTTP
    OK.

    The last line is the problem: My script needs to reply with some specific

    headers when the client sends an OPTION request (in order to identify
    itself).

    However, the "OPTIONS" case (inside switch ( $_SERVER["REQUEST_METHOD "] ))
    of

    my script never gets executed (GET, PROPFIND, etc. works). Could it be that

    Apache is not sending the OPTIONS requests to the PHP-script itself? If so,

    how can I make it do this?


Working...