Lighttpd ModRewrite pour Drupal, Wordpress, Dotclear et Zenphoto

Lighttpd ModRewrite pour Drupal, Wordpress, Dotclear et Zenphoto

Mugshots aléatoires

From Anonymous

From Anonymous
Votre note: None Note: 5 (1 vote)

Réseaux






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.

Tags
Commentaires

Poster un nouveau commentaire

Le contenu de ce champ ne sera pas montré publiquement.
  • Balises HTML autorisées: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <img> <strike> <blockquote>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Vous pouvez publier du code en utilisant les balises <code>...</code> (generic) ou bien <?php ... ?> (PHP colorié).
  • Les smileys texte sont replacés par des smyleys images.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les liens d'images avec le tag 'rel="lightbox"' dans la balise <a> apparaîtrons dans une Lightbox.

Plus d'informations sur les options de formatage