diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index a2fc673f4..b46a716cc 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -25,7 +25,12 @@ class AppServiceProvider extends ServiceProvider public function boot() { // Set root URL - URL::forceRootUrl(config('app.url')); + $appUrl = config('app.url'); + if ($appUrl) { + $isHttps = (strpos($appUrl, 'https://') === 0); + URL::forceRootUrl($appUrl); + URL::forceScheme($isHttps ? 'https' : 'http'); + } // Custom validation methods Validator::extend('image_extension', function ($attribute, $value, $parameters, $validator) { diff --git a/tests/Unit/UrlTest.php b/tests/Unit/UrlTest.php index c7d33312c..1667f5f7b 100644 --- a/tests/Unit/UrlTest.php +++ b/tests/Unit/UrlTest.php @@ -22,4 +22,12 @@ class UrlTest extends TestCase putenv('APP_URL='); } + public function test_url_helper_sets_correct_scheme_even_when_request_scheme_is_different() + { + putenv('APP_URL=https://example.com/'); + $this->refreshApplication(); + $this->get('http://example.com/login')->assertSee('https://example.com/dist/styles.css'); + putenv('APP_URL='); + } + } \ No newline at end of file