# Domain based routes?

**URL:** <https://www.ruby-forum.com/t/domain-based-routes/113611>\
**Category:** Rails\
**Created:** [September 2, 2007, 9:45pm UTC](https://www.ruby-forum.com/t/domain-based-routes/113611 "2007-09-02T21:45:58Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ADADAD](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@ADADAD](https://www.ruby-forum.com/u/ADADAD)\
**Post date:** [September 2, 2007, 9:45pm UTC](https://www.ruby-forum.com/t/domain-based-routes/113611/1 "2007-09-02T21:45:58Z")

</div>

I want to serve 2 different domains on my rails application, let’s say  
[http://A.com](http://A.com) and [http://B.com](http://B.com)

When you type [http://A.com](http://A.com) in a browser to get one set of routes  
inside the rails application (let’s say starting with index.html),  
when you type [http://B.com](http://B.com) to get another set (starting with  
default.html)

A complet isolation would be great, like 2 different routes.rb.

Is this possible? I use nginx and mongrel if is important.

Thanks,  
AD

---

<div class="post-metadata">

**Author:** ![ADADAD](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@ADADAD](https://www.ruby-forum.com/u/ADADAD)\
**Post date:** [September 2, 2007, 10:07pm UTC](https://www.ruby-forum.com/t/domain-based-routes/113611/2 "2007-09-02T22:07:43Z")

</div>

Thats funny, I just came here to find a solution for this.

I want also to be able to run multi domains on one application.

---

<div class="post-metadata">

**Author:** ![ADADAD](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@ADADAD](https://www.ruby-forum.com/u/ADADAD)\
**Post date:** [September 2, 2007, 11:42pm UTC](https://www.ruby-forum.com/t/domain-based-routes/113611/3 "2007-09-02T23:42:53Z")

</div>

AD wrote:

> I want to serve 2 different domains on my rails application, let’s say  
> [http://A.com](http://A.com) and [http://B.com](http://B.com)  
> …
> 
> Is this possible? I use nginx and mongrel if is important.

There’s a partial solution here:

[http://weblog.jamisbuck.org/2006/10/26/monkey-patching-rails-extending-routes-2](http://weblog.jamisbuck.org/2006/10/26/monkey-patching-rails-extending-routes-2)

But be sure to read the following discussion. Jamis says:

“Youâ€™ll notice, if you actually try to use it, that route generate is a  
little wonky now, unless you use named routes exclusively. Route  
generation is hard to make work with the host/domain/subdomain thing,  
because route generation has no access to the request. In fact, route  
generation does not generate the host portion of the URL; it generates  
only the path. Itâ€™s a hard problem.”

Having worked on this problem last week, I can attest that what he  
speaks the truth:-)

Incoming requests work fine, but url\_for (and anything that uses it)  
will be broken for any routes that share the same “signature”, and  
you’ll have to hack in something to handle that problem.

–Al Evans

---

<div class="post-metadata">

**Author:** ![ADADAD](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@ADADAD](https://www.ruby-forum.com/u/ADADAD)\
**Post date:** [September 2, 2007, 11:42pm UTC](https://www.ruby-forum.com/t/domain-based-routes/113611/4 "2007-09-02T23:42:56Z")

</div>

I may found the answer here, take a look:

[http://agilewebdevelopment.com/plugins/request\_routing](http://agilewebdevelopment.com/plugins/request_routing)

Let me know if it’s working for you…

---

<div class="post-metadata">

**Author:** ![ADADAD](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@ADADAD](https://www.ruby-forum.com/u/ADADAD)\
**Post date:** [September 2, 2007, 11:49pm UTC](https://www.ruby-forum.com/t/domain-based-routes/113611/5 "2007-09-02T23:49:57Z")

</div>

Guys, the request routing plugin extends routing to support domains  
and subdomains (among other things) and I would definitely recommend  
it for this. The README and RDoc are quite sufficient. I have used it  
in the past to provide things like per-domain theme support.

If you are using a named virtual host there may be some additional  
nginx configuration for you to do.

Rein

---

<div class="post-metadata">

**Author:** ![ADADAD](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@ADADAD](https://www.ruby-forum.com/u/ADADAD)\
**Post date:** [September 3, 2007, 12:06am UTC](https://www.ruby-forum.com/t/domain-based-routes/113611/6 "2007-09-03T00:06:58Z")

</div>

so why it’s not working?

map.connect ‘index.html’, :controller =\> ‘items’, :action =\>  
‘list’ , :conditions =\> { :domain =\> ‘second’ }

I get:

Valid criteria are strings, regular expressions, true, or nil

---

<div class="post-metadata">

**Author:** ![ADADAD](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/85e7bf/32.png) [@ADADAD](https://www.ruby-forum.com/u/ADADAD)\
**Post date:** [September 3, 2007, 12:25am UTC](https://www.ruby-forum.com/t/domain-based-routes/113611/7 "2007-09-03T00:25:01Z")

</div>

my bad, it’s working on my local computer, I’ll try on the server  
also.

Thanks!
