Blog

ColdBox Free Tip #6 - Using Routing with Wildcard Domains

Victor Campos September 23, 2025

Spread the word

Victor Campos

September 23, 2025

Spread the word


Share your thoughts

102 ColdBox Tips and Tricks by Luis Majano

Domain-Specific Routing with ColdBox!

ColdBox gives you the flexibility to create domain-specific routes, making it perfect for multi-tenant applications or projects that need to respond differently based on the domain or subdomain being accessed. In this tip, we’ll dive into how to use the withDomain() method to create routes that match specific domains or sub-domains.

Domain-Specific Routing

By using ColdBox's withDomain() method in your router, you can define routes that match against incoming domains. This is incredibly useful for multi-tenant applications, where each client has its own subdomain, or any project where domain-based routing is needed.

How to Use withDomain() in Routing

Here’s an example of how you can use domain-based routing in ColdBox:

route( "/" )
  .withDomain( ":client.myapp.io" )
  .to( "client.show" );

In this case, the :client placeholder in the domain will be dynamically filled with the subdomain, and the value will automatically be available in the Request Collection (rc).

For example:

  • Request URL: ortus.myapp.io
  • rc.client: ortus

This makes it easy to handle different client subdomains dynamically in your SaaS or multi-tenant application.

Why Use Domain-Specific Routing?

  • Multi-tenant Support: Perfect for applicatios where each tenant has a unique subdomain.
  • Dynamic Routing: Allows you to dynamically extract domain values and use them in your logic (e.g., to load specific client data).
  • Flexibility: The withDomain() method supports placeholders and wildcards, giving you total control over how domains are routed.

With ColdBox, creating powerful domain-specific routing is a breeze. This feature makes managing multi-tenant apps or subdomain-based routing much simpler. Try it out in your next project!

Learn More ColdBox Tips and Tricks

Stay tuned for more ColdBox tips in our ongoing series. if you want to learn more than 10 free tips and tricks make sure to get your “ColdBox 102 tips and tricks book” We have a variety of formats you can choose from.

Get your Copy

Join the Ortus Community

Be part of the movement shaping the future of web development. Stay connected and receive the latest updates on, product launches, tool updates, promo services and much more.

Subscribe to our newsletter for exclusive content.

Follow Us on Social media and don’t miss any news and updates:

Add Your Comment

Recent Entries

Assert Like You Mean It, TestBox 7.1 Part 2: Range Expectations

Assert Like You Mean It, TestBox 7.1 Part 2: Range Expectations

Before exploring the 14 range matchers, let’s take a closer look at the BoxLang Range itself. Ranges go well beyond the familiar .. syntax, providing a powerful and flexible foundation for working with sequences and boundaries. Understanding how ranges work makes the matcher API much easier to use and reason about. If you are coming from a CFML background, then this will be brand new to you as ranges have never existed until Boxlang.

Luis Majano
Luis Majano
September 24, 2026
ColdBox 8.2.0: Middleware, Streaming, AI Gateways, and a Whole Lot More

ColdBox 8.2.0: Middleware, Streaming, AI Gateways, and a Whole Lot More

ColdBox 8.2.0 is the result of work we started in March. Several of its headline features, including route-scoped middleware and Server-Sent Events, were incubated for months before shipping. We held them back on purpose: we wanted the APIs settled, the edge cases covered, and the testing story complete before asking you to build on them. They're ready now.

Luis Majano
Luis Majano
September 23, 2026
Assert Like You Mean It, TestBox 7.1 Part 1: Set Expectations

Assert Like You Mean It, TestBox 7.1 Part 1: Set Expectations

If you have ever tested that two collections contain "the same stuff, order doesn't matter," you already know the workaround: sort both arrays, compare them element by element, and hope nobody adds a duplicate. It works, but it isn't what you meant to write. You meant "these are the same set."

Luis Majano
Luis Majano
September 23, 2026