HowToRedirectHttpToHttps » History » Revision 9
Revision 8 (Anonymous, 2007-02-19 18:43) → Revision 9/33 (Anonymous, 2007-02-19 18:46)
= How to redirect HTTP requests to HTTPS = As of version 1.4.11 this is as simple as: {{{ $SERVER["socket"] == ":80" { $HTTP["host"] =~ "example.org" { url.redirect = ( "^/(.*)" => "https://example.org/$1" ) server.name = "example.org" } } $SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/path/to/example.org.pem" server.document-root = "..." } }}} (Note: this also works in versions prior to 1.4.11 providing you have not specified {{{server.port = 80}}} in your configuration file.) To redirect ''all'' hosts to their secure equivalents use the following in place of the socket 80 configuration above: {{{ $SERVER["socket"] == ":80" { $HTTP["host"] =~ "(.*)" { url.redirect = ( "^/(.*)" => "https://%1/$1" ) } } }}} ---- The information was taken from two postings to the mailing list by Jan: WARNING: unknown config-key: url.redirect (ignored) * http://article.gmane.org/gmane.comp.web.lighttpd/3575 * http://article.gmane.org/gmane.comp.web.lighttpd/3580 If you see this error {{{ WARNING: unknown config-key: url.redirect (ignored) }}} Then you need to add mod_redirect under server.modules in your lighttpd conf file: {{{ server.modules = ( "mod_rewrite", "mod_redirect", "mod_alias", "mod_access", ... ) }}} ---- '''Comments:[[BR]] It didn't work for me 1.4.13[[BR]] Starting lighttpd: 2007-02-04 12:48:00: (network.c.300) can't bind to port: 80 Address already in use[[BR]] Both with server.port = 80 and with that commented[[BR]] Does server.bind has influence?(It was set) [[BR]]''' ---- I had this trouble, darix on #lighttpd solved it for me: This: {{{ $SERVER["socket"] == "1.2.3.5:443" { protocol = "https://" # Provide ssl ssl.engine = "enable" ssl.pemfile = "/path/to/pem" fastcgi.server = ( ".fcgi" => ( "localhost" => ( "min-procs" => 1, "max-procs" => 5, "socket" => "/tmp/example", "bin-path" => "/path/to/dispatch.fcgi", "bin-environment" => ( "RAILS_ENV" => "production" ) ) ) ) } $SERVER["socket"] == "1.2.3.5:80" { $HTTP["host"] =~ "(.*)" { url.redirect = ( "^/(.*)" => "https://%1/$1" ) } } }}} Is the cause. This is the solution: {{{ $SERVER["socket"] == "1.2.3.5:443" { protocol = "https://" # Provide ssl ssl.engine = "enable" ssl.pemfile = "/path/to/pem" fastcgi.server = ( ".fcgi" => ( "localhost" => ( "min-procs" => 1, "max-procs" => 5, "socket" => "/tmp/example", "bin-path" => "/path/to/dispatch.fcgi", "bin-environment" => ( "RAILS_ENV" => "production" ) ) ) ) } else $HTTP["host"] =~ "(.*)" { url.redirect = ( "^/(.*)" => "https://%1/$1" ) } }}} (following a socket statement)