~/tools/nginx/rewrite-tester

Nginx

Nginx Rewrite Rule Tester

Проверить, как правило rewrite сработает на конкретном URL.

Как это работает

Правило rewrite в nginx с регулярным выражением и группами захвата легко написать неправильно, а узнать об этом только после деплоя, когда старые ссылки внезапно начинают вести не туда, куда задумывалось. Nginx rewrite tester online проверяет, сработает ли конкретное правило на конкретном тестовом URL, прямо в браузере до применения на реальном сервере.

Инструмент берет введенный шаблон регулярного выражения и строку замены, применяет их к тестовому адресу через стандартный механизм JavaScript регулярных выражений с группами захвата, и показывает итоговый результат подстановки, если правило совпало, либо честно сообщает, что совпадения не произошло.

Полезно применять при отладке сложных правил редиректов со старого URL адреса на новый после реструктуризации сайта, при написании условий для SEO редиректов, или просто чтобы перепроверить синтаксис регулярного выражения перед тем, как вписывать его в боевой конфиг nginx.

Частые вопросы

Использует ли этот тестер точно такой же движок регулярных выражений, что и nginx?

Nginx использует PCRE регулярные выражения, а этот тестер работает через стандартный JavaScript RegExp движок браузера, в подавляющем большинстве практических случаев синтаксис совпадает, но для очень специфичных PCRE конструкций возможны небольшие расхождения.

Как работают группы захвата вида доллар с цифрой в замене?

Каждая группа в скобках регулярного выражения нумеруется по порядку начиная с одного, в строке замены доллар с соответствующим номером подставляет то, что было захвачено этой группой из тестового адреса.

Что означает флаг last в реальном правиле rewrite nginx?

Флаг last останавливает обработку текущего набора правил и начинает поиск нового location блока для уже переписанного URL, это один из нескольких флагов, влияющих на дальнейшую обработку запроса после rewrite, но сама логика подстановки от флага не зависит.

Можно ли протестировать сразу несколько тестовых URL для одного правила?

Текущая версия проверяет один URL за раз, для проверки нескольких адресов достаточно менять поле тестового URL и повторно нажимать проверку для каждого варианта.