From dbcbf1edc799e2901c136eea475553666dff341d Mon Sep 17 00:00:00 2001 From: Vic D'Elfant Date: Tue, 6 Jun 2017 16:10:41 +0200 Subject: [PATCH] Improved HTTP_HOST rewriting --- cli/drivers/SymfonyValetDriver.php | 4 ++++ server.php | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/cli/drivers/SymfonyValetDriver.php b/cli/drivers/SymfonyValetDriver.php index d94489a..1eae3b3 100644 --- a/cli/drivers/SymfonyValetDriver.php +++ b/cli/drivers/SymfonyValetDriver.php @@ -45,6 +45,10 @@ public function isStaticFile($sitePath, $siteName, $uri) */ public function frontControllerPath($sitePath, $siteName, $uri) { + if (isset($_SERVER['HTTP_X_ORIGINAL_HOST']) && isset($_SERVER['HTTP_X_INBOUND_HOST']) && $_SERVER['HTTP_X_ORIGINAL_HOST'] === $_SERVER['HTTP_HOST']) { + $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_INBOUND_HOST']; + } + if (file_exists($frontControllerPath = $sitePath.'/web/app_dev.php')) { return $frontControllerPath; } elseif (file_exists($frontControllerPath = $sitePath.'/web/app.php')) { diff --git a/server.php b/server.php index 0f3f8d6..96516d3 100644 --- a/server.php +++ b/server.php @@ -100,6 +100,14 @@ function valet_support_xip_io($domain) * Overwrite the HTTP host for Ngrok. */ if (isset($_SERVER['HTTP_X_ORIGINAL_HOST'])) { + if (!isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { + $_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_X_ORIGINAL_HOST']; + } + + // Store original HTTP_HOST so it can optionally be restored in a driver + $_SERVER['HTTP_X_INBOUND_HOST'] = $_SERVER['HTTP_HOST']; + + // Rewrite HTTP_HOST so it contains the hostname as entered by the visitor $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_ORIGINAL_HOST']; }