Symfony переписать nginx - PullRequest
       1

Symfony переписать nginx

0 голосов
/ 22 января 2019

Я работаю с Symfony 3.4, и я уже настроил свой nginx для работы с http://example.org/my-route вместо http://example.org/app.php/my-route

server {
    location / {
        try_files $uri /app.php$is_args$args;
    }

    location ~ ^/(app_dev|config)\.php(/|$) {
        # bla bla bla
    }

    location ~ ^/app\.php(/|$) {
        # bla bla bla
    }
}

Но теперь я бы хотел перенаправить пользователя, посещающего мой сайт, с http://example.org/app.php/my-route на http://example.org/my-route

Я пытаюсь создать новую перезапись, но я получил перенаправление цикла

rewrite ^/app.php(.*) /$1 permanent;

Должен ли я только добавить заголовок () в моем app.php?

if (strpos($request->getUri(), $request->getHost().'/app.php') !== false) {
    $uri = str_replace($request->getHost().'/app.php', $request->getHost(), $request->getUri());
    header('Location: ' . $uri, true, 301);
}

1 Ответ

0 голосов
/ 22 января 2019

Чтобы избежать цикла, вам нужно определить, когда /app.php является исходным запросом, а не тем же URI, сгенерированным оператором try_files.

Исходный запрос можно найти в $request_uri переменная, которая может быть проверена с использованием блока if.

Например:

if ($request_uri ~ ^/app.php(.+)$) { return 301 $1; }

См. это предупреждение об использовании if.

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