Without having a url rewriter such as ISAPI_Rewrite available, is it possible to achieve the following:
I would like a user to browse to http://www.jjj.com/directory where /directory does not actually exist. IIS transfers the user to not-found.cfm.
At this point I can serve index.cfm i.e. http://www.jjj.com/directory/index.cfm.
The url will display just fine and the page loads even though the directory or index.cfm doesn’t exist. However I’d like to be able to not have index.cfm in the url.
Ideal:
-
Page Request to
http://www.jjj.com/directory -
IIS loads
not-found.cfmas the default404errorhandler. -
Not found strips the
CGI.query_stringand usescfswitchesto funnel the user to the appropriate controller function. May useonMissingTemplate? -
The page request never changes in the URL and the page loads transparently the user with
200 OKstatus -
If a user requests
http://www.jjj.com/directory/index.cfmI would301redirect tohttp://www.jjj.com/directory
Current:
-
Page Request to
http://www.jjj.com/directory -
IIS loads
not-found.cfmas default404error handler. -
Not found strips the
CGI.query_stringand usescfswitchesto funnel the user to the appropriate controller function. -
The page request changes to
http://www.jjj.com/directory/index.cfmwith a200 OKstatus
You’re asking how to cut something but telling us you’re not allowed to use a knife or anything resembling one.
Here’s my only clever idea using
onMissingTemplate().GET /directory/-> 404.cfm
->
<cfinclude template="#cgi.script_name#/special.cfm" />-> fires
onMissingTemplate()where you ignore the “special.cfm” bit and just use the rest of the requested path to figure out what controller to wire up to.This is a kludgy hack, though, so I would try to avoid it myself. Maybe if you explain why ISAPI Rewriting isn’t an option, then we might be able to help further.