diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 2fc96c340..e258575d8 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -273,7 +273,7 @@ class Context } // Redirect to SSL if the current domain always uses SSL. - if ($site_module_info->security === 'always' && !RX_SSL && PHP_SAPI !== 'cli') + if ($site_module_info->security === 'always' && !RX_SSL && PHP_SAPI !== 'cli' && !$site_module_info->is_default_replaced) { $ssl_url = self::getDefaultUrl($site_module_info) . RX_REQUEST_URL; self::setCacheControl(0); diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 7735b195a..998d5dfaf 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -126,6 +126,31 @@ class ModuleHandler extends Handler { $oModuleModel = getModel('module'); $site_module_info = Context::get('site_module_info'); + + // Check unregistered domain action. + if (!$site_module_info || !isset($site_module_info->domain_srl) || $site_module_info->is_default_replaced) + { + $site_module_info = getModel('module')->getDefaultDomainInfo(); + $domain_action = config('url.unregistered_domain_action') ?: 'redirect_301'; + switch ($domain_action) + { + case 'redirect_301': + header('Location: ' . Context::getDefaultUrl($site_module_info) . RX_REQUEST_URL, true, 301); + return false; + + case 'redirect_302': + header('Location: ' . Context::getDefaultUrl($site_module_info) . RX_REQUEST_URL, true, 302); + return false; + + case 'block': + $this->error = 'The site does not exist'; + $this->httpStatusCode = 404; + return true; + + case 'display': + // pass + } + } // if success_return_url and error_return_url is incorrect $urls = array(Context::get('success_return_url'), Context::get('error_return_url')); @@ -155,6 +180,7 @@ class ModuleHandler extends Handler } } + // Convert document alias (entry) to document_srl if(!$this->document_srl && $this->mid && $this->entry) { $oDocumentModel = getModel('document'); diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 77e16ebba..06dc31590 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -190,6 +190,7 @@ class moduleModel extends module { $domain_info = $this->migrateDomains(); } + $domain_info->is_default_replaced = true; } // Fill in module extra vars and return.