From 745005dcae916c1e9a33288388ca1ce9993d9d61 Mon Sep 17 00:00:00 2001 From: Vic D'Elfant Date: Fri, 9 Jun 2017 09:59:35 +0200 Subject: [PATCH] Simplified HTTP_HOST rewriting --- cli/drivers/LaravelValetDriver.php | 5 +++++ cli/drivers/SymfonyValetDriver.php | 4 ---- server.php | 14 +++----------- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/cli/drivers/LaravelValetDriver.php b/cli/drivers/LaravelValetDriver.php index 40fb91e..eaa66b3 100644 --- a/cli/drivers/LaravelValetDriver.php +++ b/cli/drivers/LaravelValetDriver.php @@ -53,6 +53,11 @@ public function isStaticFile($sitePath, $siteName, $uri) */ public function frontControllerPath($sitePath, $siteName, $uri) { + // Shortcut for getting the "local" hostname as the HTTP_HOST + if (isset($_SERVER['HTTP_X_ORIGINAL_HOST']) && isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { + $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST']; + } + return $sitePath.'/public/index.php'; } } diff --git a/cli/drivers/SymfonyValetDriver.php b/cli/drivers/SymfonyValetDriver.php index 1eae3b3..d94489a 100644 --- a/cli/drivers/SymfonyValetDriver.php +++ b/cli/drivers/SymfonyValetDriver.php @@ -45,10 +45,6 @@ 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 96516d3..6f6dbb4 100644 --- a/server.php +++ b/server.php @@ -97,18 +97,10 @@ function valet_support_xip_io($domain) } /** - * Overwrite the HTTP host for Ngrok. + * ngrok uses the X-Original-Host to store the forwarded hostname. */ -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']; +if (isset($_SERVER['HTTP_X_ORIGINAL_HOST']) && !isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { + $_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_X_ORIGINAL_HOST']; } /**