htaccess to Nginx
実際のマッピング表で Apache .htaccess を Nginx 設定に変換する。
手作業が必要なルール
マッピングは行単位で保守的に行います。確実な対応がない行はコメントとして残し、黙って捨てることはしません。
使い方
.htaccessを左側に貼り付けるか、サンプルを押して実際のファイルが変換される様子を確認します。- 変換を押すと、右側にマッピング済みの指令が入った
serverブロックが出ます。 - パネル上部のカウンターを見ます。変換できた件数と、手作業が必要な件数です。
- 下の手作業が必要なルール一覧を見ます。各項目は元の行そのもので、出力にもコメントとして残しています。
nginx.confとしてコピーまたはダウンロードし、デプロイ前に必ず目視で確認してください。
変換は行単位で、意図的に保守的に行います。確実な対応がない指令は捨てずに見える場所へ残します。
よくある用途
- PHP サイトの Nginx への移行 — WordPress の定番フロントコントローラ規則が、rewrite とファイル存在判定に変換されます。
- リダイレクトの移行 —
Redirectはreturn付きのlocationブロックに、RedirectMatchはrewriteになります。 - キャッシュヘッダーの再構築 —
ExpiresByTypeは拡張子ごとのlocationブロックとexpiresに、AddTypeの値は 1 つのtypesブロックにまとめられます。 - レガシー設定の棚卸し — 手作業一覧が、新しい設定にまだ足りない指令を教えてくれます。
よくある質問
Q: 手作業が必要と印が付く行があるのはなぜ? A: PHP の設定、環境変数のマッチング、独自ハンドラなど、Nginx に直接の対応物がない Apache 指令があるためです。推測で埋めると「見た目は完成、reload で失敗」という設定になるので、捨てずに印を付けています。
Q: 出力はそのまま使えますか?
A: 目視確認は必要です。Nginx は Apache とリライト規則の評価が異なります。パターンは先頭にスラッシュのある URI に対してマッチし、location 内の if にはよく知られた落とし穴があります。出力は強力な下書きとして扱ってください。
Q: RewriteCond の条件は変換されますか?
A: 直接の対応物があるものは変換されます。サーバー変数は Nginx の変数に対応し、ファイル判定は -f / -d になり、条件は外側の if ブロックになります。[OR] を使う条件には注記が付きます。Nginx の if では「または」を表現できないためです。
データはこのデバイス内にとどまります
htaccess to Nginx は 100% ローカルで動作します。貼り付けたり、ドロップしたデータはすべてお使いのブラウザ内で処理され、送信されることはありません。当社のサーバーには何も保存されません——タブを閉じればすべて消えます。
入力された内容がサーバーへ送信・記録・解析利用されることはありません。初回読み込み後はネットワークを切断していてもこのページは動作します。