Durant la migration sur Lighttpd, outre l'installation de php5 en fastcgi, j'ai du revoir l'ensemble des règles de rewrite des mes sites. Voici quelques règle de réécriture Lighttpd pour quelques application web.
Drupal 6
url.rewrite-once = (
"^/(files/.*)$" => "/$1",
"^/system/test/(.*)$" => "/index.php?q=system/test/$1",
"^/([^.?]*)\?(.*)$" => "/index.php?q=$1&$2",
"^/([^.?]*)$" => "/index.php?q=$1",
"^/search/(.*)$" => "/index.php?q=search/$1",
"^/(.*).xml$" => "/index.php?q=$1.xml"
"^/([^.?]*\.html)$" => "/index.php?q=$1",
"^/([^.?]*\.htm)$" => "/index.php?q=$1"
)
url.access-deny = ( "~", ".inc", ".engine", ".install", ".module", ".sh", "sql", ".theme", ".tpl.php", ".xtmpl", "Entries", "Repository", "Root" )
}
La base vient de ce site mais j'ai apporté quelques modifications pour gérer le sitemap.xml entre autre.
Normalement ces règles doivent fonctionner sur Drupal 5, mais si vous avez quand même des problèmes, j'ai testé avec succès la solution ci-dessous.
Drupal 5
index-file.names = ( "index.php" )
magnet.attract-physical-path-to = ( "/etc/lighttpd/drupal.lua" )
url.access-deny = ( "~", ".inc", ".engine", ".install", ".module", ".sh", "sql", ".theme", ".tpl.php", ".xtmpl", "Entries", "Repository", "Root" )
}
j'ai trouvé cette manière de procéder ici.
Cette règle utilise un fichier 'drupal.lua' d'on voici le contenu :
if (not attr) then
lighty.env["uri.query"] = "q=" .. lighty.env["uri.path"]
lighty.env["uri.path"] = "/index.php"
lighty.env["physical.rel-path"] = lighty.env["uri.path"]
lighty.env["physical.path"] = lighty.env["physical.doc-root"] .. lighty.env["physical.rel-path"]
end
Wordpress
url.rewrite = (
"^/(wp-.+).*/?" => "$0",
"^/(sitemap.xml)" => "$0",
"^/(xmlrpc.php)" => "$0",
"^/(.+)/?$" => "/index.php/$1"
)
}
J'ai trouvé cette règle sur ce site.
Dotclear
url.rewrite = (
"^/blog/[0-9]{4}/[0-9]{2}/?$" => "/blog/index.php/$1/$2",
"^/blog/[0-9]{4}/[0-9]{2}/[0-9]{2}/?$" => "/blog/index.php/$1/$2/$3",
"^/blog/[0-9]{4}/[0-9]{2}/[0-9]{2}/(.+)$" => "/blog/index.php/$1/$2/$3/$4",
"^/blog/([A-Z][A-Za-z0-9_-]*)/?$" => "/blog/index.php/$1",
"^/blog/([A-Z][A-Za-z0-9_-]*)/[0-9]{4}/?$" => "/blog/index.php/$1/$2",
"^/blog/([A-Z][A-Za-z0-9_-]*)/[0-9]{4}/[0-9]{2}/?$" => "/blog/index.php/$1/$2/$3",
"^/blog/([A-Z][A-Za-z0-9_-]*)/[0-9]{4}/[0-9]{2}/[0-9]{2}/?$" => "/blog/index.php/$1/$2/$3/$4",
"^/blog/([a-z]{2}(-[a-z]{2})?)$" => "blog/index.php/lang=$1",
"^/blog/ecrire/(.+)?$" => "blog/ecrire/$1",
"^/blog/tag/(.+)?$" => "blog/index.php/tag/$1"
)
}
Cette règle provient de ce site.
Zenphoto
var.zendir = "/"
url.rewrite-once = (
"^"+zendir+"admin/?$" => "$0",
"^("+zendir+"(albums|cache|themes|zp-core).*)$" => "$1",
"^("+zendir+"\?.*)" => "$1",
"^("+zendir+"[a-z]+.php(\?.*)?)$" => "$1",
"^"+zendir+"page/([0-9]+)/?$" => zendir+"index.php?page=$1",
"^"+zendir+"page/([A-Z]a-z0-9\-_]+)/?$" => zendir+"index.php?p=$1",
"^"+zendir+"(.*)/page/([0-9]+/)?$" => zendir+"index.php?album=$1&page=$2",
"^"+zendir+"page/([A-Za-z0-9\-_]+)/([A-Za-z0-9\-_]+)/?$" => zendir+"index.php?p=$1&words=$2",
"^"+zendir+"page/([A-Za-z0-9\-_]+)/([A-Za-z0-9\-_]+)/([0-9]+)/?$" => zendir+"index.php?p=$1&words=$2&page=$3",
"^"+zendir+"page/([A-Za-z0-9\-_]+)/archive/([A-Za-z0-9\-_]+)/?$" => zendir+"index.php?p=$1&date=$2",
"^"+zendir+"page/([A-Za-z0-9\-_]+)/archive/([A-Za-z0-9\-_]+)/([0-9]+)/?$" => zendir+"index.php?p=$1&date=$2&page=$3",
"^"+zendir+"(.*)/image/(thumb|[0-9]{1,4})/([^/\\]+)$" => zendir+"zp-core/i.php?a=$1&i=$3&s=$2",
"^"+zendir+"(.*)/image/([^/\\]+)$" => zendir+"zp-core/i.php?a=$1&i=$2",
"^"+zendir+"(.*)/?$" => zendir+"index.php?album=$1",
)
}
J'ai trouvé ces règles sur le site officiel de Zenphoto.
Évidement, jetez aussi un œil à la documentation de ModRewrite de Lighttpd pour plus d'informations.