When I request a CSS file that exists, the IIRF log reports that it doesn't exist because the ServerVariable REQUEST_FILENAME returns '' (see log below) and hence the URL is rewritten. Any idea why REQUEST_FILENAME is empty for some requests for files that
do exist? The log below lists the request for the file while RewriteEngine is On, then the second request that properly returns the CSS with RewriteEngine Off. This happens not just for some (but not all) *.css but also for *.js, *.png, *.php and
more.

I've seen another post where someone reported that their homepage was returned for every request and suspect this is the same symptom.

I'll try PATH_TRANSLATED but my computer date is set for today ... I don't know why you think it's not but that was just damn rude. I believe in paying for software, I develop software and fully expect to be compensated for it so I pay for what I use.

I could put in a rule for .css, .js, .jpg, .png ... etc. But I'd rather not try to figure out every possible extension that should be served statically if I can figure out why REQUEST_FILENAME isn't being set properly for each request. I'm digging into the
code to see what's up.

Okay, I think I've figured it out. On line 2339 of Rewriter.c is where you get the value for what will become the REQUEST_FILENAME from the request context. The statement is:

strcpy_s(pszBuf,SERVER_VAR_BUFFER_SIZE_DEFAULT,ctx->PhysicalPath);

This is fine so long as the length of the value for PhysicalPath doesn't exceed SERVER_VAR_BUFFER_SIZE_DEFAULT which is defined in IirfConstants.h to be 128. Every request for an item whose PhysicalPath value is longer than 128 characters will be reported
as '' (since strcpy_s() will ignore the copy if the value of the source is larger than the destination, at least I belive that is the case.)

I don't know how you would want to handle paths longer than this value (we have tons of documents to be served whose physical path would be longer than 128 characters!) I could propose a routine that tries to remalloc pszBuf to the size of the PhysicalPath
value but you might want to handle it a different way. What do you think?

**edit** Come to think of it, what if the value of any ServerVariable is larger than 128 bytes? Shouldn't you malloc() the amount needed depending on the strlen() of the requested variable, otherwise *ANY* value over 128 characters will be returned as ''?

**edit II** Duh, you do handle the resizing of the destination if the ServerVariable is larger than the default, but less than the _MAX. Ignore my last edit, but I think the REQUEST_FILENAME needs the same treatment. :-)