ikiwiki/ tips/ redirections for usedirs

Want to turn on the `usedirs` setting on an existing wiki without breaking all the links into it?

# Apache and RewriteEngine

Here's a way to do it for Apache, using the RewriteEngine. This example is for a wiki at the top of a web site, but can be adapted to other situations.

    # pages
    RewriteCond $1 !^/~          # these pages
    RewriteCond $1 !^/doc/       # are not part of
    RewriteCond $1 !^/ajaxterm   # the wiki, so
    RewriteCond $1 !^/cgi-bin/   # don't rewrite them
    RewriteCond $1 !.*/index$
    RewriteRule (.+).html$ $1/ [R]

    # rss feeds
    RewriteCond $1 !^/~
    RewriteCond $1 !.*/index$
    RewriteRule (.+).rss$ $1/index.rss

    # atom feeds
    RewriteCond $1 !^/~
    RewriteCond $1 !.*/index$
    RewriteRule (.+).atom$ $1/index.atom

# lighttpd and mod_redirect

The following example is exactly the same thing written for lighttpd by using mod_redirect:

    $HTTP["url"] !~ "^/(~|doc/|ajaxterm|cgi-bin/)" {
      $HTTP["url"] !~ "^/(.*/index\.(html|rss|atom))" {
        url.redirect = (
          "(.*)\.html$" => "$1/",
          "(.*)\.(atom|rss)$" => "$1/index.$2"
        )
      }
    }