Lighttpd Redirect Requests To Or Vice Versa

last updated in Categories Howto, lighttpd, Linux, UNIX
Lighttpd logo

For various reason you might want to redirect all traffic coming to to 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 to (no www)

$HTTP["host"] =~ "^www\.(.*)"
			url.redirect = ( "^/(.*)" => "http://%1/$1" )

No-WWW Redirect with lighttpd

Add following configuration directive if you want to redirect to (force www)

 $HTTP["host"] =~ "^domain\.com$"
			url.redirect = ( "^/(.*)" => "$1" )

Make sure you replace 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 domain).

Close and save the file. Restart the lighttpd web server:
# /etc/init.d/lighttpd restart


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

8 comment

  1. Nice!

    But how do I redirect all feed traffic to a feedburner account?

    If someone make visit to =>



  2. 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://(.+) [NC,OR]
    RewriteCond %{HTTP_REFERER} ^http://(www.)? [NC,OR]
    RewriteRule ^(.*)$ http://mysitehere/getout.html [R=301,L]

  3. 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!

  4. Yes I have, here is the exact code I am using.

    $HTTP[“host”] =~ “(^|.)$” {
    url.redirect = ( “^/(.*)” => “$1” )
    server.document-root = “/var/www/html/”
    server.error-handler-404 = “/404.php”

  5. hey how are you all …
    i have two server which is running at the same time ..and having same pages like CDN network.
    for example. (
    question is that…when user hit above site.they are facing 404 not found..
    i want when ever user face that error it will automatically redirect on my another server for example ( this .and get page from there and they access that automatically ..i will be very thankfull to you act of this kindness
    kindly tell me in this regards ,.

    Have a question? Post it on our forum!