# Rails urls

**URL:** <https://www.ruby-forum.com/t/rails-urls/103250>\
**Category:** Rails\
**Created:** [May 3, 2007, 11:48am UTC](https://www.ruby-forum.com/t/rails-urls/103250 "2007-05-03T11:48:19Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![levent](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/47e85d/32.png) [@levent](https://www.ruby-forum.com/u/levent)\
**Post date:** [May 3, 2007, 11:48am UTC](https://www.ruby-forum.com/t/rails-urls/103250/1 "2007-05-03T11:48:19Z")

</div>

Our app dynamically publishes multiple sites for multiple clients but  
the urls they need are vastly different and I was wondering if rails  
routes could handle them dynamically somehow

Right now we have a unique site\_code for each site and the site  
controllers live in a sites folder so the urls are

[application.com/SITE\_CODE/sites/controller/action/id](http://application.com/SITE_CODE/sites/controller/action/id)

The admin interface is  
[application.com/admin/controller/action/id](http://application.com/admin/controller/action/id)

How would we get the site urls to map to combinations like:

[http://poweredby.jobsgopublic.com/employername](http://poweredby.jobsgopublic.com/employername)

[http://www.surreyjobs.info](http://www.surreyjobs.info)

[http://jobs.lewisham.gov.uk](http://jobs.lewisham.gov.uk)

[http://www.jobsgopublic.com/telegraph](http://www.jobsgopublic.com/telegraph)

[http://police.jobsgopublic.com/](http://police.jobsgopublic.com/)

---

<div class="post-metadata">

**Author:** ![levent](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/47e85d/32.png) [@levent](https://www.ruby-forum.com/u/levent)\
**Post date:** [May 3, 2007, 1:13pm UTC](https://www.ruby-forum.com/t/rails-urls/103250/2 "2007-05-03T13:13:40Z")

</div>

On 5/3/07, Levent A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> The admin interface is  
> [http://www.jobsgopublic.com/telegraph](http://www.jobsgopublic.com/telegraph)
> 
> [http://police.jobsgopublic.com/](http://police.jobsgopublic.com/)

Nope, rails doesn’t handle this. This is not a standard setup for  
applications, so you’ll have to write some custom code. My publishing  
system Mephisto does something similar, however. Domains map to sites  
([www.rubyonrails.org](http://www.rubyonrails.org), [weblog.rubyonrails.org](http://weblog.rubyonrails.org), and [prototypejs.org](http://prototypejs.org) all  
run on the same mongrel cluster). I use a catch-all route to handle  
custom paths that renders the public content. Here’s a real  
simplified routes file:

# add admin routes first

map.admin ‘admin’, :controller =\> ‘admin/overview’, :action =\> ‘index’

# put this at the bottom, it sends custom paths to this

controller/action  
map.connect ‘\*path’, :controller =\> ‘mephisto’, :action =\> ‘dispatch’

–  
Rick O.  
[http://lighthouseapp.com](http://lighthouseapp.com)  
[http://weblog.techno-weenie.net](http://weblog.techno-weenie.net)  
[http://mephistoblog.com](http://mephistoblog.com)

---

<div class="post-metadata">

**Author:** ![levent](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/47e85d/32.png) [@levent](https://www.ruby-forum.com/u/levent)\
**Post date:** [May 3, 2007, 1:24pm UTC](https://www.ruby-forum.com/t/rails-urls/103250/3 "2007-05-03T13:24:43Z")

</div>

I’ve managed something similar to what you’re describing by using Jamis  
Buck’s routing\_tricks plugin [  
[Buckblog: Monkey-patching Rails: Extending Routes #2](http://weblog.jamisbuck.org/2006/10/26/monkey-patching-rails-extending-routes-2)].  
I’m serving up multiple sites from the same app and each site served has  
its  
own routing.

RSL

---

<div class="post-metadata">

**Author:** ![levent](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/47e85d/32.png) [@levent](https://www.ruby-forum.com/u/levent)\
**Post date:** [May 3, 2007, 3:29pm UTC](https://www.ruby-forum.com/t/rails-urls/103250/4 "2007-05-03T15:29:35Z")

</div>

That DynamicRouting link you posted looks interesting but it also seems  
to  
merely _mask_ the standard routes rather than let each site have its  
own,  
which Jamis’ Buck does beautifully.

RSL

---

<div class="post-metadata">

**Author:** ![levent](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/47e85d/32.png) [@levent](https://www.ruby-forum.com/u/levent)\
**Post date:** [May 3, 2007, 1:36pm UTC](https://www.ruby-forum.com/t/rails-urls/103250/5 "2007-05-03T13:36:23Z")

</div>

Russell N. wrote:

> I’ve managed something similar to what you’re describing by using Jamis  
> Buck’s routing\_tricks plugin [  
> [Buckblog: Monkey-patching Rails: Extending Routes #2](http://weblog.jamisbuck.org/2006/10/26/monkey-patching-rails-extending-routes-2)].  
> I’m serving up multiple sites from the same app and each site served has  
> its  
> own routing.
> 
> RSL

cheers guys…

I’ll look into the Mephisto codebase as well as Jamis B.'s post right  
away…

I also found [http://leflo.de/blog/2007/04/05/literal-urls-with-rails](http://leflo.de/blog/2007/04/05/literal-urls-with-rails)  
which may be useful also…

regards  
levent

ps: Rick… Thanks for Lighthouse!.. it’s been excellent so far…  
We’ve been using it at work since day 1 and personally I’m glad I don’t  
have to look at Mantis’ prehistoric interface any longer 😉
