It's better when it's simple

User Tools

Site Tools


autostart Plugin

Compatible with DokuWiki

  • 2020-07-29 "Hogfather" yes
  • 2018-04-22 "Greebo" unknown
  • 2017-02-19 "Frusterick Manners" unknown
  • 2016-06-26 "Elenor Of Tsort" unknown

plugin Handles non-existent pages by redirecting to the namespace's start page if available

Last updated on

Similar to 404manager, autosearch

Tagged with redirect

Downloadlink provided broken version, use Version from this page instead


If a non-existent page is requested, but a namespace with that name exists, and it has a start page, you will be redirected to it.

I think the autosearch plugin does this, but I haven't been able to obtain it.

Source Code

Create a directory autostart in /lib/plugins and save the code in a action.php file there.

 * Autostart Plugin: Redirects to the namespace's start page if available
 * @author Jesús A. Álvarez <>
if (!defined('DOKU_INC')) die();
if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC . 'lib/plugins/');
require_once (DOKU_PLUGIN . 'action.php');
class action_plugin_autostart extends DokuWiki_Action_Plugin
    function getInfo() {
        return array (
            'author' => 'Jesús A. Álvarez',
            'email' => '',
            'date' => '2008-04-28',
            'name' => 'Autostart Plugin',
            'desc' => "Redirect from the namespace's name to its start page",
            'url' => '',
    function page_exists($id) {
        if (function_exists('page_exists'))
            return page_exists($id);
            return @file_exists(wikiFN($id));
    function register(Doku_Event_Handler $controller) {
        $controller->register_hook('ACTION_ACT_PREPROCESS', 'AFTER', $this, 'preprocess', array ());
    function preprocess(& $event, $param) {
        global $conf;
        global $ID;
        if (!$this->page_exists($ID) && $event->data == 'show')
                // start page inside namespace
                $id = $ID.':'.$conf['start'];
                // page named like the NS inside the NS
                $id = $ID.':'.noNS(cleanID($ID));
            if ($id) header('Location: ' . wl($id,'',true));


Great extension, been using for several years. However, the current download URL returns 404 Not Found — Eric Searcy 2016-07-22

Nice work! Thanks! - Jason Xun Xu jasonxu [dot] dev [at] gmail [dot] com

Very handy plugin, great work! By the way: redirecting into a namespace (e.g. foobar → foobar:start) only works if the user/group has at least read permissions for the underlying/root namespace. In certain setups, e.g. one namespace per customer, this can be very tedious to securely implement. By removing a condition for the HTTP redirect this works out and permissions are checked on the target page anyway.

--- lib/plugins/autostart/action.php.orig       2009-11-24 20:41:31.000000000 +0100
+++ lib/plugins/autostart/action.php    2009-11-24 20:42:58.000000000 +0100
@@ -36,7 +36,7 @@
     function preprocess(& $event, $param) {
         global $conf;
         global $ID;
-        if (!$this->page_exists($ID) && $event->data == 'show')
+        if (!$this->page_exists($ID))
                 // start page inside namespace

Andreas de Pretis ad [at] 25th [dash] floor [dot] com

Thanks, I'm using the plugin with Andreas' patch on 2013-05-10a “Weatherwax” with no issues. — Justin K 2013-09-24

I changed download link to gihtub repo into my account, when the author want it i will transfer to him account

zaher 2020-11-15 17:38

plugin/autostart.txt · Last modified: 2020-11-15 17:55 by zaher