Lighttpd Redirect www.domain.com Requests To domain.com Or Vice Versa

by Vivek Gite on August 4, 2006 · 7 comments

Lighttpd logo

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:

Share this with other sys admins!
Facebook it - Tweet it - Print it -

We're here to help you make the most of sysadmin work. So, subscribe!

{ 7 comments… read them below or add one }

1 chadrick August 5, 2006

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

Reply

2 peter January 13, 2009

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]

Reply

3 Geoff January 19, 2009

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!

Reply

4 Jush Fuskin July 17, 2009

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?

Reply

5 Vivek Gite July 17, 2009

Did you add $1 at the end of domain name?

Reply

6 Jush Fuskin July 17, 2009

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”
}

Reply

7 Franz December 22, 2010

How can I enable this for HTTPS, too? This rewrite rule seems to redirect to HTTP automatically.

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 5 + 11 ?
Please leave these two fields as-is:
Are you a human being? Solve the simple math so we know that you are a human and not a bot.




Previous post:

Next post: