Fix URL resolving errors. Also fix Grunt task for local server

This commit is contained in:
Gautham Warrier 2014-10-29 13:14:20 +05:30
bovenliggende 7b267a64c2
commit 7f1992b749
2 gewijzigde bestanden met toevoegingen van 38 en 11 verwijderingen

Bestand weergeven

@ -42,8 +42,8 @@
public function handle_request($url, $query = array()) {
if ($this->error) return $this->error_page;
if (!$this->params['clean_urls']) $this->params['base_page'] .= 'index.php?request=';
$request = DauxHelper::get_request_from_url($url, $this->base_url);
if (!$this->params['clean_urls']) $this->params['base_page'] .= 'index.php/';
$request = DauxHelper::get_request();
$request = urldecode($request);
$request_type = isset($query['method']) ? $query['method'] : '';
switch ($request_type) {
@ -74,12 +74,10 @@
}
$this->mode = Daux::LIVE_MODE;
$this->host = $_SERVER['HTTP_HOST'];
//Fixes for pages within pages
//$this->base_url = $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
$this->base_url = $_SERVER['HTTP_HOST'];
//$this->base_url = substr($this->base_url, 0, strrpos($this->base_url, '/'));
//adding this replace, which replaces the /index.php with nothing seems to resolve the issue with serving static content
$this->base_url = str_replace("/index.php", "", $this->base_url);
$this->base_url = $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
$t = strrpos($this->base_url, '/index.php');
if ($t != FALSE) $this->base_url = substr($this->base_url, 0, $t);
if (substr($this->base_url, -1) !== '/') $this->base_url .= '/';
}
private function load_global_config($global_config_file) {
@ -206,7 +204,7 @@
$params['index_key'] = 'index';
$params['docs_path'] = $this->docs_path;
$protocol = '//';
$params['base_url'] = $protocol . $this->base_url . '/';
$params['base_url'] = $protocol . $this->base_url;
$params['base_page'] = $params['base_url'];
$params['host'] = $this->host;
$params['tree'] = $this->tree;
@ -236,7 +234,7 @@
$params['docs_path'] = $this->docs_path;
$params['index_key'] = 'index';
$protocol = '//';
$params['base_url'] = $protocol . $this->base_url . '/';
$params['base_url'] = $protocol . $this->base_url;
$params['base_page'] = $params['base_url'];
$params['host'] = $this->host;
$params['tree'] = $this->tree;

Bestand weergeven

@ -59,8 +59,10 @@
return static::directory_tree_builder($dir, $ignore, $mode);
}
//Depreciated
public static function get_request_from_url($url, $base_url) {
$url = substr($url, strlen($base_url) + 1);
$url = substr($url, strlen($base_url));
if (strpos($url, 'index.php') === 0) {
$request = (($i = strpos($url, 'request=')) !== false) ? $request = substr($url, $i + 8) : '';
if ($end = strpos($request, '&')) $request = substr($request, 0, $end);
@ -72,6 +74,33 @@
return $request;
}
public static function get_request($prefix_slash = false)
{
if (isset($_SERVER['PATH_INFO'])) $uri = $_SERVER['PATH_INFO'];
else if (isset($_SERVER['REQUEST_URI'])) {
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0) $uri = substr($uri, strlen($_SERVER['SCRIPT_NAME']));
else if (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0) $uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME'])));
if (strncmp($uri, '?/', 2) === 0) $uri = substr($uri, 2);
$parts = preg_split('#\?#i', $uri, 2);
$uri = $parts[0];
if (isset($parts[1])) {
$_SERVER['QUERY_STRING'] = $parts[1];
parse_str($_SERVER['QUERY_STRING'], $_GET);
} else {
$_SERVER['QUERY_STRING'] = '';
$_GET = array();
}
$uri = parse_url($uri, PHP_URL_PATH);
}
else return false;
$uri = str_replace(array('//', '../'), '/', trim($uri, '/'));
if ($uri == "") $uri = "index";
return $uri;
}
public static function configure_theme($theme, $base_url, $local_base, $theme_url, $mode = Daux::LIVE_MODE) {
$name = static::pathinfo($theme);
if (is_file($theme)) {