2009-11-19 21:33:59 +01:00
|
|
|
<?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']);
|
|
|
|
|
2009-11-19 21:35:53 +01:00
|
|
|
$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 = "";
|
2009-11-19 21:36:02 +01:00
|
|
|
} else if($ruLen > $snLen && substr($_SERVER['REQUEST_URI'],0,$snLen+1) == ($_SERVER['SCRIPT_NAME'] . '/')) {
|
|
|
|
$url = substr($_SERVER['REQUEST_URI'],$snLen+1);
|
|
|
|
$url = strtok($url, '?');
|
2009-11-19 21:35:53 +01:00
|
|
|
} 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 = "";
|
2009-11-19 21:33:59 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2009-11-19 21:35:53 +01:00
|
|
|
$_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']) . '/' . $url;
|
|
|
|
header($_SERVER['SERVER_PROTOCOL'] . ' 301 Moved Permanently');
|
|
|
|
header("Location: $fileURL");
|
|
|
|
die();
|
|
|
|
}
|
|
|
|
|
2009-11-19 21:34:10 +01:00
|
|
|
// For linux
|
2009-11-19 21:33:59 +01:00
|
|
|
$_SERVER['SCRIPT_FILENAME'] = str_replace('/index.php','/sapphire/main.php', $_SERVER['SCRIPT_FILENAME']);
|
|
|
|
$_SERVER['SCRIPT_NAME'] = str_replace('/index.php','/sapphire/main.php', $_SERVER['SCRIPT_NAME']);
|
2009-11-19 21:34:10 +01:00
|
|
|
// And for windows
|
|
|
|
$_SERVER['SCRIPT_FILENAME'] = str_replace('\\index.php','\\sapphire\\main.php', $_SERVER['SCRIPT_FILENAME']);
|
|
|
|
$_SERVER['SCRIPT_NAME'] = str_replace('\\index.php','\\sapphire\\main.php', $_SERVER['SCRIPT_NAME']);
|
2009-11-19 21:33:59 +01:00
|
|
|
|
|
|
|
chdir('sapphire');
|
|
|
|
require_once('sapphire/main.php');
|