For various reason you might want to redirect all traffic coming to www.domain.com to domain.com or vise versa.
This is essential if you want to maintained a good structure for search engines (SEO) or to generate accurate stats.
How To Configure No www
Open your /etc/lighttpd/lighttpd.conf file:
# vi /etc/lighttpd/lighttpd.conf
Find out your virtual domain section.
WWW Redirect with lighttpd
Add following configuration directive if you want to redirect www.domain.com to domain.com (no www)
$HTTP["host"] =~ "^www\.(.*)" { url.redirect = ( "^/(.*)" => "http://%1/$1" ) }
No-WWW Redirect with lighttpd
Add following configuration directive if you want to redirect domain.com to www.domain.com (force www)
$HTTP["host"] =~ "^domain\.com$" { url.redirect = ( "^/(.*)" => "http://www.domain.com/$1" ) }
Make sure you replace domain.com with your actual domain name. You can see live example of this configuration by visiting this url (it will automatically remove www and redirect you to theos.in domain).
Close and save the file. Restart the lighttpd web server:
# /etc/init.d/lighttpd restart
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- 10 Greatest Open Source Software Of 2009
- My 10 UNIX Command Line Mistakes
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
- Email this to a friend
- Download PDF version
- Printable version
- Comment RSS feed
- Last Updated: Jul/17/2009



{ 6 comments… read them below or add one }
Nice!
But how do I redirect all feed traffic to a feedburner account?
If someone make visit to domain.com/feed/ => feeds.feedburner.com/myAccount
Cheers,
Chadrick
How can i redirect user based on referer?
Sometime i got bad user i want to redirect them to goway.html? How can i do that? In apache i do something like this:
RewriteEngine On
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} ^http://(.+)\.edublogs\.org [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?fakeyahoo\.com [NC,OR]
RewriteRule ^(.*)$ http://mysitehere/getout.html [R=301,L]
Does anyone know how I can redirect all non-ww domains to the www version?
I basically need this reversed:
$HTTP["host"] =~ “^www\.(.*)$” {
url.redirect = ( “^/(.*)” => “http://%1/$1″ )
}
Thanks for any help!
I added the directive into my .conf file and it worked but the problem is when I visit a url
for example: when I go to http://mydomain.com it sends me to http://www.mydomain.com. Which is what I want.
But when I go to http://mydomain.com/page1.php Instead of adding a www. infront of the title it just redirects me to the http://www.mydomain.com instead of http://www.mydomain.com/page1.php
How do I fix this?
Did you add $1 at the end of domain name?
Yes I have, here is the exact code I am using.
$HTTP["host"] =~ “(^|\.)domain\.com$” {
url.redirect = ( “^/(.*)” => “http://www.domain.com/$1″ )
server.document-root = “/var/www/html/domain.com”
server.error-handler-404 = “/404.php”
}