<?php
function fixuri($uri) {
    global $userdir, $query;
    if ($query != "") {
        $uri = rtrim(substr($uri, 0, stripos($uri, "?$query")), "/\\");
    }
    $uri = substr($uri, strripos($uri, $userdir)+strlen($userdir));
    return $uri;
}

$user = "indigo176";
$url = "http://$user.blinkenshell.org/";
$userdir = "~$user/";
$dirprefix = "/var/www/users/$user/";

$request = fixuri(urldecode($_SERVER["REQUEST_URI"]));
$query = $_SERVER["QUERY_STRING"];

$uri = rtrim(urldecode($_SERVER["REQUEST_URI"]), "/\\?");
$uri = fixuri($uri);
if (!is_dir("$dirprefix$uri")) {
    $uri = rtrim(dirname(urldecode($_SERVER["REQUEST_URI"])), "/\\");
    $uri = fixuri($uri);
} else {
    chdir("$dirprefix$uri");
}
if ($uri != "") {
    $uri = "$uri/";
}

if ($query != "") {
    $query = "?$query";
}

$forward = $_SERVER["HTTP_X_FORWARDED_HOST"];
if ($forward != "$user.blinkenshell.org, blinkenshell.org") {
    $fixurl = True;
}

if ($fixurl) {
    header("Location: $url$uri$query");
}

?>
