#!/bin/sh # # virtualdr.cgi v.1.3 # # This script modifies environmental variables so that # script wouldn't generate ugly URL when it is used in the directory # redirect by mod_rewrite. # # For details, see http://check-these.info/hosting/Generic_htaccessMethod.html # # For debugging #echo #exec 2>&1 export OLD_DOCUMENT_ROOT=$DOCUMENT_ROOT export OLD_SCRIPT_URL=$SCRIPT_URL export OLD_SCRIPT_NAME=$SCRIPT_NAME export OLD_SCRIPT_FILENAME=$SCRIPT_FILENAME HOST=${HTTP_HOST#www.} export SCRIPT_URL=/${REDIRECT_URL#/*/} export SCRIPT_NAME=$SCRIPT_URL export DOCUMENT_ROOT="$DOCUMENT_ROOT/$HOST" export SCRIPT_FILENAME="$DOCUMENT_ROOT$SCRIPT_NAME" error404 (){ echo -e "Status: 404 Not found\nContent-type: text/html\n" #cat $DOCUMENT_ROOT/path_to_error404.doc ; exit echo "Error: 404 Not found '$SCRIPT_URL'" ; exit } error500 (){ echo -e "Status: 500 Internal server error\nContent-type: text/html\n" #cat $DOCUMENT_ROOT/path_to_error500.doc ; exit echo "Error: 500 Internal server error '$SCRIPT_URL'" ; exit } case "$REDIRECT_URL" in '') error404 ;; esac cd "$DOCUMENT_ROOT${SCRIPT_NAME%/*}" || error404 #echo;echo "QUERY_STRING=$QUERY_STRING, pwd=`pwd`
" case "$QUERY_STRING" in *=*) QS='' ;; *) QS="$QUERY_STRING" ;; esac #echo $QS if [ ! -f $SCRIPT_FILENAME ] ;then error404 ; fi case "$SCRIPT_NAME" in *.php) exec /usr/local/bin/php $SCRIPT_FILENAME ;; *.php5) exec /usr/local/php5/bin/php $SCRIPT_FILENAME ;; *nph-*.cgi) if [ ! -x $SCRIPT_FILENAME ] ;then error500 ; fi echo -e "Content-type: text/html\n\n"; $SCRIPT_FILENAME $QS |sed -e '1,/^$/d'; exit ;; *.cgi) if [ ! -x $SCRIPT_FILENAME ] ;then error500 ; fi exec $SCRIPT_FILENAME $QS ;; *) error500 ;; esac error404