Blog

Tip of the Week: ColdBox Routes

Brad Wood November 28, 2012

Spread the word

Brad Wood

November 28, 2012

Spread the word


Share your thoughts

 

Hopefully you are already familiar with the format of a default ColdBox URL when using the SES interceptor.  
 
mysite.com/index.cfm/myHandlerName/myActionName
 
Of course, a simple rewrite rule can simplify that even further to:
 
mysite.com/myHandlerName/myActionName
 
What you may not realize is that URL pattern is called a "route" and not only can be changed, but you can add as many customized routes as your application desires.  The magic happens in your /config/routes.cfm file where all the routes are declared in the order they should be processed.  You'll find the default route in that file:
 
addRoute(pattern=":handler/:action?");
 
The syntax for adding a new custom route looks like this:
 
addRoute(pattern="/URLStringToMatch", handler="handlerName", action="actionName");
 
That means, you could set up a route like so:
 
addRoute(pattern="/blog", handler="entryHandler", action="listEntries");
 
Now, the following two URLs would point to the exact same thing (with the second option being obviously preferable):
 
mysite.com/entryHandler/listEntries
mysite.com/blog
 
You can even clean up URLs that have variables.  Consider the following page on your site:
 
mysite.com/services/products/productDetail/productID/1234
 
Just add a new route that looks like this:
 
addRoute(pattern="/product/:productID", handler="services.products", action="productDetail");
 
And now the following URL will give you the same page:
 
mysite.com/product/1234
 
As you can see, routes are a very powerful way to keep those URLs looking sharp, but we're barely scratching the surface of what you can do.  Don't get intimidated though-- read through the docs dive in!
 
 

Add Your Comment

Recent Entries

A Year in Review - BoxLang 2024 Recap!

A Year in Review - BoxLang 2024 Recap!

BoxLang has come a long way since its beta release, and we're thrilled to share the incredible progress made so far. From its initial launch to the upcoming stable version, BoxLang has been evolving with new features, tools, and a growing ecosystem, all aimed at empowering modern developers.In this recap, we’ll highlight the milestones and advancements that have shaped BoxLang’s journey to this point. Let’s take a look at what we’ve achieved and what’s coming next!

Maria Jose Herrera
Maria Jose Herrera
January 03, 2025
Partner with BoxLang and Ortus at Into the Box 2025: Empowering the Future of Modern Software Development!

Partner with BoxLang and Ortus at Into the Box 2025: Empowering the Future of Modern Software Development!

At Ortus Solutions, we’ve always been at the forefront of innovation in the ColdFusion ecosystem. From pioneering modern ColdFusion practices to developing cutting-edge tools and frameworks, we’ve been passionate to help and sup[port the community into shaping the future of web development.That’s why we decided to build BoxLang, our new JVM programming language that not only builds on the strengths of ColdFusion but takes modern software development to the next level.

Maria Jose Herrera
Maria Jose Herrera
December 23, 2024