Назад | Перейти на главную страницу

Nginx Config Location Regex с языковым кодом в URL

Попытка добиться постоянного языкового кода в 1-м сегменте URL-адреса с конфигурацией местоположения регулярного выражения nginx и не смогла найти правильный синтаксис.

Необходимый результат:

В настоящее время я обнаружил этот код, но он все еще где-то застрял. Он создает постоянный цикл и не использует аргумент $ 1.

location ~ "^/(?![a-z]{2}/)(.+)$" {
    rewrite / /en/$1 permanent;
}

#Using handler here for removing index.php in uri (example.com/index.php -> example.com);
location / {
    index index.htm index.html index.php;
    try_files $uri $uri/ @handler;
}

location @handler {
    rewrite / /index.php?$query_string;
}



ОБНОВИТЬ: Ответ можно найти в этом вопросе: https://stackoverflow.com/a/33913261/2662849

В @handler location перепишет URI на /index.php который затем перенаправляется на /en/index.php, который (если он не существует) вызывает @handler расположение.

Читать этот документ потому что вам нужно что-то для обработки PHP. Цикл перенаправления вызван тем, что файл или обработчик не существует. Вам необходимо определить местоположение для обработки файлов PHP, либо другое местоположение регулярного выражения, либо ваше указанное местоположение.