<?php

/************************************************************************************
 ************************************************************************************
 **                                                                                **
 **  If you can read this text in your browser then you don't have PHP installed.  **
 **  Please install PHP 5.0 or higher, preferably PHP 5.2.                         **
 **                                                                                **
 ************************************************************************************
 ************************************************************************************/

/**
 * This script bolts on top of SilverStripe/Sapphire to allow access without the use of .htaccess
 * rewriting rules.
 */

// This is the URL of the script that everything must be viewed with.
define('BASE_SCRIPT_URL','index.php/');

$ruLen = strlen($_SERVER['REQUEST_URI']);
$snLen = strlen($_SERVER['SCRIPT_NAME']);

$isIIS = (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false);

// IIS will populate server variables using one of these two ways
if($isIIS) {
	if($_SERVER['REQUEST_URI'] == $_SERVER['SCRIPT_NAME']) {
		$url = "";
	} else if($ruLen > $snLen && substr($_SERVER['REQUEST_URI'],0,$snLen+1) == ($_SERVER['SCRIPT_NAME'] . '/')) {
		$url = substr($_SERVER['REQUEST_URI'],$snLen+1);
		$url = strtok($url, '?');
	} else {
		$url = $_SERVER['REQUEST_URI'];
		if($url[0] == '/') $url = substr($url,1);
		$url = strtok($url, '?');
	}

// Apache will populate the server variables this way
} else {
	if($ruLen > $snLen && substr($_SERVER['REQUEST_URI'],0,$snLen+1) == ($_SERVER['SCRIPT_NAME'] . '/')) {
		$url = substr($_SERVER['REQUEST_URI'],$snLen+1);
		$url = strtok($url, '?');
	} else {
		$url = "";
	}
}

$_GET['url'] = $_REQUEST['url'] = $url;

$fileName = dirname($_SERVER['SCRIPT_FILENAME']) . '/' . $url;

/**
 * This code is a very simple wrapper for sending files
 * Very quickly pass through references to files
 */
if($url && file_exists($fileName)) {
	$fileURL = (dirname($_SERVER['SCRIPT_NAME'])=='/'?'':dirname($_SERVER['SCRIPT_NAME'])) . '/' . $url;
	header($_SERVER['SERVER_PROTOCOL'] . ' 301 Moved Permanently');
	header("Location: $fileURL");
	die();
}

require_once('sapphire/main.php');
