У нас было приложение файлового привода, обслуживаемое apache, работающее по следующему пути:
https://app.example.com/приложение
От нас требовалось обновить приложение и перейти на использование Nginx. Нам также было поручено обслуживать приложение на:
https://app.example.com
Однако у нас все еще есть некоторые файлы, ссылающиеся на первый путь, и мы хотели бы, чтобы эти пути были доступны.На данный момент мы можем обслуживать файлы только по второму пути. Мой файл конфигурации nginx:
сервер {
слушать 80;
слушать [::]:80;
имя_сервера app.example.com;
# Принудительное перенаправление HTTPS
вернуть 301 https://$http_host$request_uri;
}
сервер {
слушать 443 ssl http2;
слушать [::]:443 ssl http2;
имя_сервера app.example.com;
ssl_certificate /etc/letsencrypt/live/app.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;
включить /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
корень /var/www/html;
индекс index.php;
расположение ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
установить $path_info $fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
}
}
Учитывая конфигурацию, я хотел бы обслуживать оба app.example.com
и app.example.com/app
с теми же файлами приложений на сервере. Я пытался использовать это:
местоположение/приложение {
перепишите ^/app(.*) /$1 последним;
}
Но он просто перенаправляет все запросы, и я не могу правильно загрузить файл, например, с помощью https://app.example.com/file?id=12345
. Буду признателен за любую помощь в решении этой проблемы. Спасибо!