You can easily do this with your missing template handler.

First of all, your web server needs to hand off 404 processing to CF.
on IIS you do this by altering the .cfm document property so the box
that says 'make sure the file actually exists' is unchecked.
Obviously I'm paraphrasing and not trying to give you a step-by-step
on how to do it).

Next, set up a missing template handler in the CF server admin.

Next, in that missing template handler ... you tell it what to do.
This means you deal with the expected cases of 'false' 404's as well
as properly handling real ones.  So lets say you have a set of search
results that you want a crawler to move thru.  Creating urls like

http://mydomain.com/next/list_61.cfm
http://mydomain.com/prev/list_1.cfm

You could make up something like what you see below.  Set up a cfif
for every possible case you can find.  the thing works by chopping up
the url looking for a string.  When it finds the string it branches
accordingly.  You would think that using cfhttp like this is really
resource intensive but it has proven not to be via experience.  Since
I am querying 'myself' with it essentially, the load has proven to be
negligible.

<!---
make sure its not a for-real error (error handling code snipped out for clarity)
--->
<cfif not isdefined ("error.diagnostics")>
        <cfset is404="1">
        <!---
        not defined. must be a 404 and not an error
        --->
        <!---
        next/prev button
        --->
        <cfif FindNoCase("next/",cgi.path_info,"1") or
FindNoCase("prev/",cgi.path_info,"1")>
                <cfset is404="0">
                <cfset 
url.StartRow=ListLast(ListFirst(ListLast(cgi.Script_Name,"/"),"."),"_")>
                <cfset 
thisURL="#server.rootURL#list.cfm?StartRow=#url.StartRow#">
        </cfif>
    <!---
    ... more cases go here ...
    --->
        <!---
        did we NOT hit one of the special cases?
        --->
        <cfif is404>
                <!---
                the var is not set, so lets show our dummy
resource-lite 404 page.
                --->
                <cfheader
                        statuscode="404"
                        statustext="Not Found">
                <cfheader
                        name="Location"
                        value="http://mydomain.com/404.html";>
                <cfabort>
        <cfelse>
                <!---
                get the page, whose url has been determined by the handler 
above.
                --->
                <cfhttp
                        url="#thisURL#"
                        method="GET"
                        timeout="20"
                        resolveurl="YES"
                        port="80">
                </cfhttp>
                <!---
                display what we got
                --->
                <cfoutput>#cfhttp.FileContent#</cfoutput>
                <!---
                kill the waaabbit
                --->
                <cfabort>       
        </cfif>
</cfif>



On Feb 13, 2008 11:08 AM, Josh Nathanson <[EMAIL PROTECTED]> wrote:
> > ....and I get 404 - not found...
>
> I think you need to remove that trailing slash in the rewrite rule, if it
> will not be present on the request url:
>
> RewriteRule (.*)/seminar/(.*) $1/seminar.cfm?VAR=$2
>
> -- Josh
>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;160198600;22374440;w

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:298918
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to