diff --git a/inc/common.php b/inc/common.php
index 20baed6c01ca96f71640859d5371dd7396ef2324..3c40a47dc15cc90de0e6c4646629e0a6ba5cd5d1 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -320,13 +320,15 @@ function idfilter($id, $ue = true) {
     if($conf['useslash'] && $conf['userewrite']) {
         $id = strtr($id, ':', '/');
     } elseif(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' &&
-        $conf['userewrite']
+        $conf['userewrite'] &&
+        strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') === false
     ) {
         $id = strtr($id, ':', ';');
     }
     if($ue) {
         $id = rawurlencode($id);
         $id = str_replace('%3A', ':', $id); //keep as colon
+        $id = str_replace('%3B', ';', $id); //keep as semicolon
         $id = str_replace('%2F', '/', $id); //keep as slash
     }
     return $id;