]> git.plutz.net Git - cgilite/commitdiff
strip _BASE path from PATH_INFO variable
authorPaul Hänsch <paul@plutz.net>
Thu, 7 Oct 2021 22:30:25 +0000 (00:30 +0200)
committerPaul Hänsch <paul@plutz.net>
Thu, 7 Oct 2021 22:30:25 +0000 (00:30 +0200)
cgilite.sh

index a2aa32924bdc7ed30cc35fb053b416859a05f93c..526a0fc738410dcfafa31017a836cc5ad7a71a03 100755 (executable)
@@ -48,7 +48,7 @@ _EXEC="${_EXEC:-${0%/*}}"
 _DATA="${_DATA:-.}"
 _EXEC="${_EXEC%/}" _DATA="${_DATA%/}" _BASE="${_BASE%/}"
 
-# Carriare Return and Line Break characters for convenience
+# Carriage Return and Line Break characters for convenience
 CR="\r"
 BR='
 '
@@ -90,7 +90,7 @@ HEX_DECODE(){
         *) out="${out}${in%"${in#?}"}"; in="${in#?}"; continue;;
     esac;
 
-    # Hex escaes for printf (e.g. \x41) are not portable 
+    # Hex escapes for printf (e.g. \x41) are not portable 
     # The portable way for Hex output is transforming Hex to Octal
     # (e.g. \x41 = \101)
     case $in in
@@ -146,6 +146,7 @@ if [ -z "$REQUEST_METHOD" ]; then
 
     SERVER_PROTOCOL="${SERVER_PROTOCOL%${CR}}"
     PATH_INFO="$(HEX_DECODE % "${REQUEST_URI%\?*}" |PATH)"
+    PATH_INFO="$(PATH "/${PATH_INFO#${_BASE}}")"
     [ "${REQUEST_URI}" = "${REQUEST_URI#*\?}" ] \
     && QUERY_STRING='' \
     || QUERY_STRING="${REQUEST_URI#*\?}"