项目

通用

个人资料

操作

Lighttpd 上的 DokuWiki 干净 URL

这是来自 irc.freenode.net #lighttpd 的 darix 提供的一个版本,修复了许多错误,例如可选的尾部斜杠等。

#!lighttpdconf
$HTTP["host"] =~ "some.otherhost.com" {
    server.document-root = "/var/www/htdocs" 
    # DO NOT FORGET THE TRAILING SLASH HERE
    # var.wiki_base = "/wiki/" 
    # var.wiki_base = "/" 
    var.wiki_base = "/" 
    #
    $HTTP["url"] =~ "^" + var.wiki_base {
      #RewriteRule ^$          doku.php  [L]
      #RewriteRule ^index.php$ doku.php
      index-file.names = ("doku.php")
    }
    url.rewrite = (
      #
      "^" + var.wiki_base + "lib/.*$" => "$0",
      #RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
      #RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
      #RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
      #RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
      #RewriteRule ^index.php$               doku.php
      "^" + var.wiki_base + "_media/(.*)"          => var.wiki_base + "lib/exe/fetch.php?media=$1",  #  [QSA,L]
      "^" + var.wiki_base + "_detail/(.*)"         => var.wiki_base + "lib/exe/detail.php?media=$1", #  [QSA,L]
      "^" + var.wiki_base + "_detail/(.*)\?id(.*)"         => var.wiki_base + "lib/exe/detail.php?media=$1&id=$2", #  [QSA,L]
      "^" + var.wiki_base + "_export/([^/]+)/(.*)" => var.wiki_base + "doku.php?do=export_$1&id=$2", #  [QSA,L]
      "^" + var.wiki_base + "doku.php.*"           => "$0",
      "^" + var.wiki_base + "index.php/(.*)"           => var.wiki_base + "doku.php?id=$1",
      "^" + var.wiki_base + "index.php\?display=(.*)"           => var.wiki_base + "doku.php?id=$1",
      "^" + var.wiki_base + "index.php.*"           => "$0",
      "^" + var.wiki_base + "feed.php.*"           => "$0",
      "^" + var.wiki_base + "sitemap.xml.gz"           => "$0",
      "^" + var.wiki_base + "(.*)\?(.*)"           => var.wiki_base + "doku.php?id=$1&$2",           #  [QSA,L]
      "^" + var.wiki_base + "(.*)"                 => var.wiki_base + "doku.php?id=$1",              #  [QSA,L]
    )
}

DokuWiki 配置

在 local.php 或 local.protected.php 中,添加

$conf['userewrite'] = '1';

可能缺少一些东西(我在 detail.php 上遇到过一些问题),但基本设置对我来说是可行的。

gstrauss 3 年多前 更新 · 4 个修订版本