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

Перезапись Nginx с помощью внешней программы

В модуле Apache mod_rewrite есть функция под названием RewriteMap. Это позволяет вызывать внешнюю программу для обработки перенаправления (что позволяет выполнять более сложное перенаправление).

Есть ли эквивалентная функция для Nginx? Я просмотрел модули HttpMap и rewrite, но не могу найти способ сделать это ни для одного из них.

Любые указатели были бы замечательными.

Не совсем то же самое.

Вы должны использовать сторонний модуль, такой как модуль lua, для обработки расширенной логики.

Мартин Ф. прав, точной реализации не существует. Но вы можете выполнить настройку этого типа несколькими способами. Вам нужно будет поискать в Интернете, но я могу указать вам правильное направление. Я предполагаю, что вам так или иначе придется заново реализовать свою настройку.

  1. Перепишите URL-адреса во внешний скрипт, как WordPress обрабатывает свои URL-адреса SEO. Если вы пойдете этим путем, посмотрите try_files. На самом деле это может быть самый быстрый способ, независимо от вашего языка сценария. Например...

    try_files $uri $uri/ /rewritescript.php?q=$uri&;
    
  2. NginxHttpMapModule, проверьте это на некоторых примерах, которые я нашел http://www.ruby-forum.com/topic/197405

  3. Включите, проверьте этот пост http://forum.nginx.org/read.php?2,14117,14321#msg-14321

  4. Если вы знаете C, вы всегда можете создать плагин для nginx.