diff --git a/_test/cases/inc/pageutils_getid.test.php b/_test/cases/inc/pageutils_getid.test.php
index 14a21cae2d10920036b66ea516010cda1f5806a8..790c869d1740bd08946bd5b7dcb8c619eff12ead 100644
--- a/_test/cases/inc/pageutils_getid.test.php
+++ b/_test/cases/inc/pageutils_getid.test.php
@@ -76,7 +76,7 @@ class init_getID_test extends UnitTestCase {
         $_SERVER['SCRIPT_FILENAME'] = '/var/www/vhosts/example.com/htdocs/doku.php';
         $_SERVER['SCRIPT_NAME'] = '/doku.php';
         $_SERVER['REQUEST_URI'] = '/doku.php/wiki/dokuwiki';
-        $_SERVER['PATH_INFO'] = '/test/dokuwiki';
+        $_SERVER['PATH_INFO'] = '/wiki/dokuwiki';
         $_SERVER['PATH_TRANSLATED'] = '/var/www/vhosts/example.com/htdocs/doku.php';
         $_SERVER['PHP_SELF'] = '/doku.php/wiki/dokuwiki';
 
diff --git a/inc/pageutils.php b/inc/pageutils.php
index eb22084c1d5660beeba6f05358b49c7026965905..ef09dc7b633275a9bb0b67cb28c82e7387719ee0 100644
--- a/inc/pageutils.php
+++ b/inc/pageutils.php
@@ -23,10 +23,11 @@ function getID($param='id',$clean=true){
 
     $id = isset($_REQUEST[$param]) ? $_REQUEST[$param] : null;
 
-    $request = $_SERVER['REQUEST_URI'];
-
     //construct page id from request URI
     if(empty($id) && $conf['userewrite'] == 2){
+        $request = $_SERVER['REQUEST_URI'];
+        $script = '';
+
         //get the script URL
         if($conf['basedir']){
             $relpath = '';
@@ -35,15 +36,14 @@ function getID($param='id',$clean=true){
             }
             $script = $conf['basedir'].$relpath.basename($_SERVER['SCRIPT_FILENAME']);
 
-        }elseif($_SERVER['DOCUMENT_ROOT'] && $_SERVER['PATH_TRANSLATED']){
-            $request = preg_replace ('/^'.preg_quote($_SERVER['DOCUMENT_ROOT'],'/').'/','',
-                    $_SERVER['PATH_TRANSLATED']);
+        }elseif($_SERVER['PATH_INFO']){
+            $request = $_SERVER['PATH_INFO'];
+        }elseif($_SERVER['SCRIPT_NAME']){
+            $script = $_SERVER['SCRIPT_NAME'];
         }elseif($_SERVER['DOCUMENT_ROOT'] && $_SERVER['SCRIPT_FILENAME']){
             $script = preg_replace ('/^'.preg_quote($_SERVER['DOCUMENT_ROOT'],'/').'/','',
                     $_SERVER['SCRIPT_FILENAME']);
             $script = '/'.$script;
-        }else{
-            $script = $_SERVER['SCRIPT_NAME'];
         }
 
         //clean script and request (fixes a windows problem)