From ed974cd9fec6044b49308b91d59e319c76be952b Mon Sep 17 00:00:00 2001 From: joyqi Date: Tue, 26 Jan 2016 17:50:26 +0800 Subject: [PATCH] fix #316 fix #390 fix #430 add constants __TYPECHO_URL_PREFIX__ to custom global url prefix --- var/Typecho/Request.php | 10 +++++++--- var/Widget/Options.php | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/var/Typecho/Request.php b/var/Typecho/Request.php index 66b7bcf0..b4bfe2fc 100644 --- a/var/Typecho/Request.php +++ b/var/Typecho/Request.php @@ -218,9 +218,13 @@ class Typecho_Request public static function getUrlPrefix() { if (empty(self::$_urlPrefix)) { - self::$_urlPrefix = (self::isSecure() ? 'https' : 'http') . '://' - . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']) - . (empty($_SERVER['SERVER_PORT']) || in_array($_SERVER['SERVER_PORT'], array(80, 443)) ? '' : ':' . $_SERVER['SERVER_PORT']); + if (defined('__TYPECHO_URL_PREFIX__')) { + self::$_urlPrefix == __TYPECHO_URL_PREFIX__; + } else { + self::$_urlPrefix = (self::isSecure() ? 'https' : 'http') . '://' + . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'] + . (empty($_SERVER['SERVER_PORT']) || in_array($_SERVER['SERVER_PORT'], array(80, 443)) ? '' : ':' . $_SERVER['SERVER_PORT'])); + } } return self::$_urlPrefix; diff --git a/var/Widget/Options.php b/var/Widget/Options.php index e673cf28..c8647a9f 100644 --- a/var/Widget/Options.php +++ b/var/Widget/Options.php @@ -372,6 +372,7 @@ class Widget_Options extends Typecho_Widget /** 动态获取根目录 */ $this->rootUrl = $this->request->getRequestRoot(); if (defined('__TYPECHO_ADMIN__')) { + /** 识别在admin目录中的情况 */ $adminDir = '/' . trim(defined('__TYPECHO_ADMIN_DIR__') ? __TYPECHO_ADMIN_DIR__ : '/admin/', '/'); $this->rootUrl = substr($this->rootUrl, 0, - strlen($adminDir)); }