nginx: как использовать псевдоним маршрутизации разных путей - PullRequest
1 голос
/ 29 октября 2019

я хочу указать /m/v2/, а затем случайный путь ,, например, apc, tcb и так далее. К /var/www/app. Но моя конфигурация показывает 404

location ~* ^/m/v2/([a-z]+)/(.*)$ {
    try_files $uri $uri.html $uri/ @htmlext;
    alias /opt/www/app/;
    index myInterest.html;
    access_log logs/app_v2_access.log main;
} 

location @htmlext { 
    rewrite ^(.*)$ $1.html last;
}

1 Ответ

0 голосов
/ 29 октября 2019

Используя alias с регулярным выражением location, вы должны составить полный путь к файлу в выражении alias. Подробнее см. в этом документе .

Использование alias с try_files является сложной задачей. См. этот отчет об ошибке для получения подробной информации.

Ваши термины $uri.html и @htmlext, похоже, пытаются сделать то же самое. В моем примере вместо try_files используется блок if. См. это предупреждение об использовании if.

Например:

location ~* ^/m/v2/([a-z]+)/(.*)$ {
    alias /opt/www/app/$2;
    index myInterest.html;
    access_log logs/app_v2_access.log main;

    if (-e $request_filename.html) {
        rewrite ^(.*)$ $1.html last;
    }
}
...