対応する Apache の RewriteRule と RewriteCond の記述を、サーバー上で確認・調整・テストするための Nginx 設定の下書きに変換します。
ブラウザ内でローカルに実行このツールは .htaccess のリライトルールを読み取り、対応する Nginx の行を出力します。RewriteRule は rewrite に、RewriteCond はそれを囲む if ブロックになります。処理はページ内で完結し、ルールはアップロードされません。
変換されるのはリライトルールだけです。RewriteBase、Redirect、Header、Options などの Apache ディレクティブはコピーされず、結果の末尾にコメントとして一覧表示されるため、判断が必要な箇所を確認できます。
RewriteRule の行は同じパターンを持つ rewrite 文になります。[L] は last、[R=301] は permanent、[R=302] と [R] は redirect になり、[NC] はパターン内の (?i) として書き出されるため大文字小文字を区別しない照合が保たれます。[E=NAME:value] は nginx が受け付ける set $NAME value; になります。
RewriteCond の行は $rule_N 変数を設定する if ブロックになり、保護されたルールは if ($rule_N = "...") の中で実行されます。ファイル判定も変換され、否定された -f は !-f、-d はそのまま、-s は -e になります。
Nginx に対応する書き方がない Apache ディレクティブは黙って捨てられません。結果の末尾に一覧のコメントが付き、S= や T= のように対応のないフラグも同じコメントに含まれます。
[F]、[G]、[P] のルールも変換しません。条件のない 403 やプロキシを伴う rewrite は nginx で別の動作になるためです。ツールは該当ルールと、手動で追加すべき構成を出力します。読み取れない条件は #ignored と表示され、その条件が守っていたルールは書き直すまで動作しません。
入力は 6,000 文字までです。大きな .htaccess は分割してください。出力は出発点であり、完成した設定ではありません。引用符、location ブロック、サーバー構成は環境によって異なります。
生成したブロックを server ブロックに置いて nginx -t を実行し、切り替える前にブラウザーでリダイレクトを 1 つ確認してください。変換は JavaScript でローカルに実行されるため、ルールがページ外に出ることはなく、オフラインでも動作します。