Saltycrane logo

SaltyCrane Blog

Notes on Python, Django, and web development on Ubuntu Linux

    

Card store project #5: Redirecting my www-prefixed domain to my non-www-prefixed domain

For search engine optimization and analytics, I wanted to make http://www.handsoncards.com/ permanently redirect to http://handsoncards.com/. So I started Googling. It took me a while to figure this one out... The first few articles I read suggested using Rewrite directives in my .htaccess file but this didn't work for me (maybe because I'm using mod_python and Django?). Then I found I could use Rewrite in my httpd.conf file, but I got an infinite redirect loop. Finally, I found the solution from this discussion. Here's what I did. I'm using Django, mod_python, and Apache on Ubuntu at Slicehost.

  • Enable mod_rewrite. Logged in as root:
    a2enmod rewrite
  • Edit /etc/apache2/httpd.conf:
    <VirtualHost *>
        ServerName handsoncards.com
        ServerAlias www.handsoncards.com
        #
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^www\.handsoncards\.com
        RewriteRule (.*) http://handsoncards.com$1 [R=301,L] 
        #
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE handsoncards.settings
        PythonPath "['/srv/HandsOnCards', '/srv/python-packages'] + sys.path"
        PythonDebug Off
    </VirtualHost>
  • Restart Apache:
    /etc/init.d/apache2 restart

Post a comment

Required
Required, but not displayed
Optional

Format using Markdown. (No HTML.)
  • Code blocks: prefix each line by at least 4 spaces or 1 tab (and a blank line before and after)
  • Code span: surround with backticks
  • Blockquotes: prefix lines to be quoted with >
  • Links: <URL>
  • Links w/ description: [description](URL)
Created with Django | Hosted by Slicehost