Graham Dumpleton
grahamd at dscpl.com.au
Wed Jul 5 18:23:15 EDT 2006
greg wrote .. > When a nonsense filename is entered instead of a valid template, > PSP spits out this exception: > > ValueError: /local/path/foo.psp is not a file > > I would like to make this return a 404 error instead. Is there an easier > way of doing it besides making my own handler, calling PSP manually, and > catching the exception? Using a handler to wrap it is one way, but I wouldn't call psp and catch the exception. Instead I would check for the files existence and only call psp if it existed. Thus: from mod_python import apache # Don't use "import" due to bug in mod_python 3.1.X. psp = apache.import_module("mod_python.psp") import os def handler(req): if not os.path.exists(req.filename): return apache.HTTP_NOT_FOUND return psp.handler(req) The only way I can think of doing it without requiring a handler to be written is to use a RewriteRule which detects the file doesn't exist and forces a NOT_FOUND error response. At least I am presuming that this could be done, I'm not a RewriteRule expert. In the end, mod_python.psp should be fixed to return NOT_FOUND when the file doesn't in fact exist. I'll create JIRA issue for it once I confirm that later versions behave like this as well. Graham
|