The rewrite module provides a -d operator to the if directive which
will test for a directory existence; please see Module ngx_http_rewrite_module .
Alternatively, if you are going to end up using the index or some
value inside the directory if it exists, then you should consider
using the try_files directive documented here: Module ngx_http_core_module .
I would like to check if the directory of a non existant file exist.
The rewrite module provides a -d operator to the if directive which
will test for a directory existence; please see Module ngx_http_rewrite_module .
Alternatively, if you are going to end up using the index or some
value inside the directory if it exists, then you should consider
using the try_files directive documented here: Module ngx_http_core_module .
Thank you Merlin.
I almost know all the wiki, including -d and try_files.
Here is what I need to do :
try to server /poipoi/foobar
if the file doesn’t exist, check if /poipoi/ exist
if this directory doesn’t exist, return a redirect, otherwise return
404
How can I get the base directory of $request_filename ?
Alternatively, if you are going to end up using the index or some
try to server /poipoi/foobar
Pior,
Sorry for confusion! I don’t think you can directly do what you want
do, in that there is no specific “dirname function” (there isn’t even
a concept of a function in the nginx configuration language right
now).
That said you should be able to do what you want using regular
expression captures. Something like the following might work for your
needs, but I have not tested it and I am the best with regex: