TerAnYu
@TerAnYu
Системный администратор

Как в nginx, при помощи rewrite, сделать перенаправление?

Есть задача сделать перенаправление запроса в nginx.
Имеется ссылка:
http://site_name/dl/filename.exe
Необходимо, что бы при запросе:
http://site_name/dl/filename2.exe
где цифра 2 - любая латинская буква (большая или маленькая) или цифра, и ведёт всё к одному и тому же файлу filename.exe
Так же вместо конкретного filename.exe может быть любое другое имя, например filenamedistrib.exe и должен быть доступен по тем же правилам.

Пытался сделать как указано здесь: Как правильно составить rewrite в nginx?
Сделал так, но не работет:
rewrite ^/([a-zA-Z0-9\-]+)\.exe$ /dl/$1.exe last;
  • Вопрос задан
  • 2661 просмотр
Решения вопроса 1
TerAnYu
@TerAnYu Автор вопроса
Системный администратор
После долгого гугления, чтения получилось нечто:
rewrite ^/dl/(.*)Setup([COYSFI]?)([a-z0-9_]*).exe$ /dl/$1Setup$3.exe last;

Более подробная задача появилась немного позже что и порадило такую конструкцию.
- имеется файлы на диске (ProgrammSetup.exe / ProgrammSetup_1.exe), необходимо что бы они были доступны как по своему имени, так и по любому имени, согласно правилу:
1. ProgrammSetupC.exe / ProgrammSetupO.exe / ProgrammSetupY.exe / ProgrammSetupS.exe / ProgrammSetupF.exe / ProgrammSetupI.exe -> ProgrammSetup.exe
2. ProgrammSetupC_1.exe -> ProgrammSetup.exe
3. ProgrammSetupO_2.exe / ProgrammSetupY_3.exe / ProgrammSetupS_4.exe / ProgrammSetupF_5.exe / ProgrammSetupI_6.exe -> ProgrammSetup.exe
4. ProgrammSetup_1.exe -> ProgrammSetup_1.exe
5. ProgrammSetup_2.exe -> ProgrammSetup.exe

Может где ошибся в требованиях, но это вполне устраивает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dmitry-polushkin
@dmitry-polushkin
Инженер программного обеспечения
rewrite ^/dl/filename[a-zA-Z0-9\-]+\.exe$ /dl/filename.exe last;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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