From a3349913e5b88216f76ddc9a9a80998018dd86a8 Mon Sep 17 00:00:00 2001
From: Bohdan Korablov <bkorablov@magento.com>
Date: Tue, 18 Oct 2016 14:45:32 +0300
Subject: [PATCH] MAGETWO-56317: [GitHub] -[2.1.0] underscore in site url
 breaks admin redirect - The page isn't redirecting properly #5809

---
 .../Config/Model/Config/Backend/Baseurl.php       |  1 +
 setup/src/Magento/Setup/Controller/UrlCheck.php   | 15 ++++++++-------
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/app/code/Magento/Config/Model/Config/Backend/Baseurl.php b/app/code/Magento/Config/Model/Config/Backend/Baseurl.php
index fd09c2b95e5..75d626e0045 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Baseurl.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Baseurl.php
@@ -227,6 +227,7 @@ class Baseurl extends \Magento\Framework\App\Config\Value
      *
      * @param string $value
      * @return bool
+     * @throws \Magento\Framework\Exception\LocalizedException
      */
     private function _isFullyQualifiedUrl($value)
     {
diff --git a/setup/src/Magento/Setup/Controller/UrlCheck.php b/setup/src/Magento/Setup/Controller/UrlCheck.php
index f7bee654c18..c27764d37aa 100644
--- a/setup/src/Magento/Setup/Controller/UrlCheck.php
+++ b/setup/src/Magento/Setup/Controller/UrlCheck.php
@@ -21,18 +21,19 @@ class UrlCheck extends AbstractActionController
         $params = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
         $result = ['successUrl' => false, 'successSecureUrl' => true];
 
+        $hasBaseUrl = isset($params['address']['actual_base_url']);
+        $hasSecureBaseUrl = isset($params['https']['text']);
+        $hasSecureAdminUrl = !empty($params['https']['admin']);
+        $hasSecureFrontUrl = !empty($params['https']['front']);
+
         // Validating of Base URL
-        if (isset($params['address']['actual_base_url'])
-            && filter_var($params['address']['actual_base_url'], FILTER_VALIDATE_URL)
-        ) {
+        if ($hasBaseUrl && filter_var($params['address']['actual_base_url'], FILTER_VALIDATE_URL)) {
             $result['successUrl'] = true;
         }
 
         // Validating of Secure Base URL
-        if (!empty($params['https']['admin']) || !empty($params['https']['front'])) {
-            if (!(isset($params['https']['text'])
-                && filter_var($params['https']['text'], FILTER_VALIDATE_URL))
-            ) {
+        if ($hasSecureAdminUrl || $hasSecureFrontUrl) {
+            if (!($hasSecureBaseUrl && filter_var($params['https']['text'], FILTER_VALIDATE_URL))) {
                 $result['successSecureUrl'] = false;
             }
         }
-- 
GitLab