# Re: Rewrite Subdomains to Paths (Valentin V. Bartenev)

**URL:** <https://www.ruby-forum.com/t/re-rewrite-subdomains-to-paths-valentin-v-bartenev/218260>\
**Category:** NGINX\
**Created:** [March 26, 2012, 4:16pm UTC](https://www.ruby-forum.com/t/re-rewrite-subdomains-to-paths-valentin-v-bartenev/218260 "2012-03-26T16:16:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [March 26, 2012, 4:16pm UTC](https://www.ruby-forum.com/t/re-rewrite-subdomains-to-paths-valentin-v-bartenev/218260/1 "2012-03-26T16:16:07Z")

</div>

Hello,

Thanks for the quick reply. I apologize ahead-of-time if this is the  
incorrect way to reply to messages on here. I have my notification  
settings  
set to once per day.

Anyways, this would definitely work for redirects. Is it possible to do  
it  
in a way that is transparent to the end-user and my WSGI Application  
server? Basically, when the user accesses  
[username.example.com/foo/bar/then](http://username.example.com/foo/bar/then) my WSGI Application would just see "  
[example.com/username/foo/bar/](http://example.com/username/foo/bar/)". I’m trying to get around a limitation of  
django where it processes URLs based on the path alone. I mainly want  
this  
done dynamically so I don’t have thousands of configuration directives  
going on.

Thanks again!

---

<div class="post-metadata">

**Author:** ![Kurtis\_Mullins](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/54ee81/32.png) [@Kurtis\_Mullins](https://www.ruby-forum.com/u/Kurtis_Mullins)\
**Post date:** [March 26, 2012, 6:29pm UTC](https://www.ruby-forum.com/t/re-rewrite-subdomains-to-paths-valentin-v-bartenev/218260/2 "2012-03-26T18:29:33Z")

</div>

On Mon, Mar 26, 2012 at 10:14:53AM -0400, Kurtis Mullins wrote:

Hi there,

> Anyways, this would definitely work for redirects. Is it possible to do it  
> in a way that is transparent to the end-user and my WSGI Application  
> server?

That’s (mostly) up to your application server.

> Basically, when the user accesses  
> [username.example.com/foo/bar/then](http://username.example.com/foo/bar/then) my WSGI Application would just see "  
> [example.com/username/foo/bar/](http://example.com/username/foo/bar/)".

On the nginx side, you “just” adjust the uwsgi\_param values that you  
send.  
(Assuming that’s how nginx access the application.)

But before you do that: try accessing the WSGI Application using the  
[example.com/username/foo/bar/](http://example.com/username/foo/bar/) style urls. Look in the returned content.  
Do  
you see the string “username” anywhere? Do you see any linked content  
with a url that starts “/” or with multiple “../”? Do you see any linked  
content with a url that includes “[example.com](http://example.com)”?

If you do, consider how they will look to a client which thinks that  
its initial request was to [username.example.com/foo/bar](http://username.example.com/foo/bar).

You can get nginx to mangle http headers. You shouldn’t get nginx to  
mangle the http body.

It can work. But it is worth testing your particular setup to make sure  
that it works for you.

## f

Francis D. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
