Маршруты Laravel за обратным прокси-сервером показывают неправильный URL - PullRequest
0 голосов
/ 20 марта 2019

Я переношу свое приложение на новый хост.У меня сейчас проблема с URL.Например, когда я захожу на www.mydomain.be/public/dashboard, приложение перенаправляет на myservername.azurewebsites.net/public/dashboard.

Коллега указал мне на «Маршруты Laravel за обратным прокси», но этоне работает для меня.Я гуглил и попробовал следующее:

В Middleware \ TrustProxies.php

protected $proxies = [
        '**'
    ];

в .env

PROXY_URL = http://www.mydomain.be/public/
PROXY_SCHEMA = https

в маршрутах / web.phpp

    $proxy_url    = getenv('PROXY_URL');
$proxy_schema = getenv('PROXY_SCHEMA');
if (!empty($proxy_url)) {
    URL::forceRootUrl($proxy_url);
}

if (!empty($proxy_schema)) {
    URL::forceScheme($proxy_schema);
}

Я также пытался в маршрутах / web.php с

URL::forceRootUrl('https://www.mydomain.be/public');

, но ничто не исправляет тот факт, что в url-balk myservername.azurewebsites.net/public/ отображается.

1 Ответ

0 голосов
/ 20 марта 2019

Ниже приведен быстрый обходной путь для решения этой проблемы, включая схему (http против https):

Поместите следующий код поверх app / Http / rout.php

$proxy_url    = getenv('PROXY_URL');
$proxy_schema = getenv('PROXY_SCHEMA');

if (!empty($proxy_url)) {
   URL::forceRootUrl($proxy_url);
}

if (!empty($proxy_schema)) {
   URL::forceSchema($proxy_schema);
}

затем добавьте следующую строку в файл .env:

PROXY_URL = http://igateway.somedomain.com

Если вам также нужно изменить схему в сгенерированном HTML-коде с http: // на https://,, просто добавьтетакже следующая строка:

PROXY_SCHEMA = https

В последней версии laravel forceSchema имя метода изменилось на forceScheme, и приведенный выше код должен выглядеть следующим образом:

if (!empty($proxy_schema)) {
    URL::forceScheme($proxy_schema);
}

Надеюсь, это поможет вам, источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...