Перейти к содержанию

Конвертер htaccess в Nginx

Преобразуйте правила Apache .htaccess в эквивалентную конфигурацию Nginx.

Входные данные
Выходные данные

Конвертер htaccess в Nginx

Вставьте содержимое файла Apache .htaccess, и этот инструмент переписывает правила в ближайший эквивалент конфигурации Nginx. Он создан для разработчиков, переносящих сайт с Apache на Nginx (или настраивающих соответствующую конфигурацию Nginx для локальной разработки), которые не хотят вручную переводить каждую строку RewriteRule и RewriteCond построчно.

Опции позволяют включать или отключать каждое семейство правил независимо. RewriteRule и RewriteCond становятся директивами rewrite с блоком if для предшествующего (единственного) условия, согласованными с распространенными флагами, такими как R=301, L, NC, F и G. Redirect и RedirectMatch становятся блоками location, возвращающими правильный код статуса. ErrorDocument становится error_page, директивы Header становятся add_header, а ExpiresDefault/ExpiresByType становятся директивами expires на location, соответствующей расширению файла. Управление доступом (Order, Deny/Allow, Require) становится allow/deny, а полный блок AuthType Basic становится auth_basic плюс auth_basic_user_file. Вы также можете обернуть весь результат в блок server или блок location, готовый для вставки в конфиг Nginx.

Apache и Nginx не отображаются друг на друга один к одному — несколько конструкций (несколько условий RewriteCond с И, флаг OR, пользовательские коды перенаправления, Header unset, правила Expires для каждого MIME типа без соответствующего расширения) не имеют прямого эквивалента Nginx. Когда конвертер встречает одну из этих конструкций, он оставляет исходную строку на месте в виде комментария с предупреждением вместо угадывания, поэтому ничего не теряется молча и ничего не становится молча неправильным; отключите предупреждения после проверки, если хотите чистый файл.

Все работает локально в вашем браузере — конфигурация вашего сервера никогда не загружается никуда, что важно, так как файл .htaccess может раскрыть внутренние пути и правила доступа. Скопируйте результат, загрузите его как файл .txt или отправьте прямо на вход другого инструмента для дальнейшей доработки.

FAQ

Производит ли это полную, готовую к использованию конфигурацию Nginx?
Он производит эквивалентные директивы, но Nginx и Apache не отображаются один к одному — всегда проверяйте вывод, особенно все, что помечено комментарием с предупреждением, перед развертыванием.
Что происходит с правилами, у которых нет прямого эквивалента Nginx?
Они остаются в выводе как комментарий, объясняющий, что требуется ручная проверка, вместо того чтобы быть молча отброшены или неправильно преобразованы. Отключите «Показывать предупреждения», чтобы полностью их пропустить.
Может ли она преобразовать цепочки RewriteRule с несколькими условиями?
Одна директива RewriteCond над RewriteRule преобразуется в блок if. Несколько условий с И или флаг OR не имеют чистого эквивалента Nginx и вместо этого помечаются как предупреждение.
Справляется ли она с базовой аутентификацией?
Да — полный блок AuthType Basic / AuthName / AuthUserFile / Require valid-user преобразуется в auth_basic и auth_basic_user_file. AuthType Digest не имеет эквивалента Nginx и помечается.
Мой файл .htaccess загружается куда-нибудь?
Нет. Преобразование работает полностью в вашем браузере — ваша конфигурация, включая любые пути и правила доступа, которые она раскрывает, никогда не покидает ваше устройство.