Правило переписання Nginx для видалення вузла шляху


20

Скажімо, користувач намагається отримати доступ до певного зображення на моєму веб-сайті за допомогою наступної URL-адреси: http://www.mywebsite.com/blog/image1.jpg?someParam=100

мені потрібно переписати це правило, видаляючи вузол 'blog' зі шляху:

http://www.mywebsite.com/image1.jpg?someParam=100

Відповіді:


27

Спробуйте це:

location /blog {
 rewrite ^/blog(/.*)$ $1 last;
}

Якщо вам це потрібно для більш ніж одного сайту, ви не можете просто поставити його вище в ієрархії, оскільки пункт "location" не може бути визначений у глобальному масштабі, лише для конкретного сайту. Якщо вам потрібно додати цю пропозицію для двох сайтів або більше, ви можете покласти її в інший конфігураційний файл, а потім просто "включити" його на кожен сайт, який потребує цього перенаправлення.


Це працює на тому ж сервері. Як змусити його працювати для іншого домену?
Автододаток

1
Просто включіть новий домен як частину переписування: rewrite ^/blog(/.*)$ https://blog.example.com$1 permanent;
Крістоф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.