============ URL Rewrites ============ ------------------- Module: mod_rewrite ------------------- :Author: Jan Kneschke :Date: $Date: 2004/11/03 22:26:05 $ :Revision: $Revision: 1.2 $ :abstract: url rewrite .. meta:: :keywords: lighttpd, rewrite .. contents:: Table of Contents Description =========== internal redirects, url rewrite Options ======= url.rewrite-once rewrites a set of URLs interally in the webserver BEFORE they are handled. e.g. :: url.rewrite-once = ( "" => "" ) url.rewrite-repeat rewrites a set of URLs interally in the webserver BEFORE they are handled e.g. :: url.rewrite-repeat = ( "" => "" ) The options ``url.rewrite`` and ``url.rewrite-final`` were mapped to ``url.rewrite-once`` in 1.3.16. Warning ======= Do NOT use mod_rewrite to protect specific urls, as the original url passed from the client is matched against your rules, for example strings like "/abc/../xyz%2f/path". Examples ======== The regex is matching the full REQUEST_URI which is supplied by the user including query-string.:: url.rewrite-once = ( "^/id/([0-9]+)$" => "/index.php?id=$1", "^/link/([a-zA-Z]+)" => "/index.php?link=$1" ) # the following example, is, however just simulating vhost by rewrite # * you can never change document-root by mod_rewrite # use mod_*host instead to make real mass-vhost # request: http://any.domain.com/url/ # before rewrite: REQUEST_URI="/www/htdocs/url/" # and DOCUMENT_ROOT="/www/htdocs/" %0="www.domain.com" $1="url/" # after rewrite: REQUEST_URI="/www/htdocs/domain.com/url/" # still, you have DOCUMENT_ROOT=/www/htdocs/ server.document-root = "/www/htdocs/" $HTTP["host"] =~ "^.*\.([^.]+\.com)$" { url.rewrite-once = ( "^/(.*)" => "/%0/$1" ) }