Файл попыток nginx, если он не найден, откат для перезаписи не работает (цикл перенаправления)

У меня есть 2 сценария:

  • /media/cache/test.jpg или stylesheet / theme / xxxx.css создается приложением. Это не статический файл, присутствующий в файловой системе.

  • /assets/test.jpg - статический файл, присутствующий на хосте

Я хочу, чтобы оба файла были кэшированы браузером, добавляя истекает 6M Заголовок .

Итак, я сделал:

location / {
    try_files $uri @rewriteapp;
}

location @rewriteapp {
     rewrite ^(.*)$ /index.php/$1 last;
}

location ~ ^/(index)\.php(/|$) {
    fastcgi_pass unix...;
    internal;
}

location ~ \.php$ {
    return 404;
}

# assets, media
location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif)$ {
    expires 6M;
    access_log off;

    # try accessing the file directly, and if not found 
    # it means the application has to generate it, 
    # so reroute to the @rewriteapp rule.
    try_files $uri @rewriteapp;
}

Проблема в том, что nginx обнаруживает цикл:

* 194369 цикл перезаписи или внутреннего перенаправления при перенаправлении в указанное место "@rewriteapp", клиент: 127.0.0.1, сервер: , запрос: "GET /stylesheet/theme/3441-1484735061.css

Что мне не хватает, пожалуйста?

0
задан 5 July 2019 в 15:27
1 ответ

Хорошо, поэтому замена try_files $ uri @rewriteapp; на try_files $ uri /index.php$is_args$args;, похоже, решает проблему .

0
ответ дан 23 November 2019 в 23:05

Теги

Похожие вопросы