It's better when it's simple

User Tools

Site Tools


autostart Plugin

Compatible with DokuWiki

  • 2023-04-04 "Jack Jackrum" unknown
  • 2022-07-31 "Igor" unknown
  • 2020-07-29 "Hogfather" yes
  • 2018-04-22 "Greebo" 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


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: 2022-07-30 00:17 by Klap-in

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki