У меня есть приложение в IIS с URL-адресом "http: // localhost / ГЛАВНЫЙ", обратите внимание на виртуальный каталог в верхнем регистре.
Когда я пытаюсь получить доступ к этому URL-адресу, используя имя приложения / виртуального каталога в нижнем регистре, например "http: // локальный / основной"затем приложение превращает URL в"http: // localhost / MAIN / Account / Login? ReturnUrl =% 2fmain"обратите внимание на"% 2fmain ". После входа в систему меня перенаправляют обратно на страницу / маршрут входа.
Я думаю, что IIS должен вернуть 404 для имени виртуального каталога в нижнем регистре.
Может кто-нибудь пролить некоторый свет на это?
были такие же проблемы
Измените strpos для stripos в функции getUrlencodedPrefix, расположенной по адресу vendor \ symfony \ http-foundation \ Request.php.
У нас были проблемы с доступом к нашему приложению laravel в IIS с помощью fast-cgi.
URL приложения http: // сервер / myApp указывает на общую папку приложения и в 90% случаев он работает, но по какой-то причине после нескольких дней работы он внезапно перестает работать с ошибкой маршрута [в RouteCollection.php (строка 179)]. Единственный способ получить доступ обратно через тот же URL, но в нижнем регистре "A" http: // сервер / myapp. Через несколько дней он снова переключается на верхний регистр "A".
Проблема обострилась около 2 дней назад, когда он начал переключаться почти на почасовой основе.
Мы отследили проблему до строки 2043 vendor \ symfony \ http-foundation \ Request.php [strpos меняет ее на stripos], проблема устранена.
Что, по-видимому, является основной причиной, так это обработка fast-cgi с помощью переменной _SERVER ['SCRIPT_NAME']. Когда пул приложений перезапускает процесс php-cgi.exe, первый запрос к процессу установит эту переменную в раздел виртуальной папки с учетом регистра. С этого момента matchAgainstRoutes (vendor \ laravel \ framework \ src \ Illuminate \ Routing \ RouteCollection.php) не будет работать, так как случай не будет совпадать.
Я ищу долгосрочное решение, так как любое обновление в Symphony Core или Laravel, скорее всего, вернет это ИСПРАВЛЕНИЕ обратно. Я надеюсь, что пока этот пост поможет.