views:

118

answers:

1

I am in the process of deploying a new Django site to replace a current Wordpress blog. As I get it setup, I want to test everything in the domain's subdirectory before I switch things to the root and "go live". For example: http://example.com/django/

Editing my .htaccess file allows me to redirect things without a hitch (I can see the Django site and my wordpress site still works), however, I am not sure how to tell Django to view http://example.com/django/ as the BASE URL (rather than just http://example.com/) ... I tried setting my SITE domain but that didn't help.

Currently, all my pages get a 404 response - they they aren't matching any url patterns (because none of my url patterns start with django/).

I looked for a way to set a BASE_URL but can't find any. Ideas? I only want to do this for a couple hours while I test everything to make sure it is working and then swap the settings in the .htaccess file and run it on the main site.

+1  A: 

Set the following in your Apache directive:

    PythonOption django.root /django

Then django will trim /django off the front of every URL request.

jcdyer
Hmm - I am on a shared host and using FastCGI and I don't believe I can edit my `httpd.conf` file ... do you know, off hand, how to do that with FastCGI ? (I am googling but not seeing...)
thornomad
Take a look at http://www.djangobook.com/en/beta/chapter21/#cn133. If you play around with what `ModRewrite` is doing there, that should work. Alternatively, you could set a `DJANGO_ROOT` in the settings file, and set up a middleware early in the stack that strips the location on each request as it comes in
jcdyer