lighttpd

Lighttpd ModRewrite pour Drupal, Wordpress, Dotclear et Zenphoto

Soumis par bonvga le 22 août, 2008 | Laisser un commentaire

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

$HTTP["host"] =~ "(^|\.)foo\.bar$" {
  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

$HTTP["host"] =~ "(^|\.)foo\.bar$" {
  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 :

attr = lighty.stat(lighty.env["physical.path"])
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

$HTTP["host"] =~ "(^|\.)foo\.bar$" {
  url.rewrite = (
    "^/(wp-.+).*/?" => "$0",
    "^/(sitemap.xml)" => "$0",
    "^/(xmlrpc.php)" => "$0",
    "^/(.+)/?$" => "/index.php/$1"
  )
}

J'ai trouvé cette règle sur ce site.

Dotclear

$HTTP["host"] =~ "(^|\.)foo\.bar$" {
  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

$HTTP["host"] =~ "(^|\.)foo\.bar$" {
  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.

Posté dans les catégories , , , , , et | Laisser un commentaire

Dedibox V2 Standard

Soumis par bonvga le 18 août, 2008 | Laisser un commentaire

Ça y est ! Ma nouvelle dedibox est livrée. Pas trop tôt, après un mois et demi d'attente (commandée le 17 juin, livrée le 5 aout). Et une journée de plus à attendre que le serveur d'install soit moins sollicité suite à une arrivé massive de dedibox. Enfin, je suis rôdé, je n'avais déjà pas eu trop de chance lors de ma première commande.

Si vous êtes aussi en train d'attendre votre livraison de dedibox, le plus simple est d'aller sur 'le chat d'entraide', lisez le topic ou sinon demandez à un admin.

Pour plus d'informations sur la configuration de ce serveur, allez voir la documentation officielle.

Lors de l'installation, j'ai choisi de rester sur une distribution debian (4.0r2 64bits).

J'ai profité de cette migration de serveur pour passer de Apache 2 à Lighttpd. Je prendrais le temps de développer ce sujet plus tard, mais pour le moment le bilan est positif, le site est plus rapide.

Et pour finir, j'ai aussi pu tester la procédure de résiliation d'une dedibox, et oui, je ne comptais pas garder ma vieille dedibox. Pour le moment j'ai envoyé le formulaire de résiliation en recommandé avec accusé de réception la semaine dernière. J'attends de leurs nouvelles.

A suivre.

Posté dans les catégories , et | Laisser un commentaire