Apache用 .htaccessジェネレーター
Apacheの.htaccessルールを生成します。HTTPS強制、wwwの有無、301リダイレクト、エラーページ、gzip、ブラウザキャッシュ、セキュリティヘッダー、ドットファイルのブロックに対応しています。
ステータスは 301、302、303、307、308、410(削除済み)のいずれか。新パスは完全な URL でも構いません。
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# Redirects (mod_alias)
Redirect 301 /old-page /new-page
Redirect 301 /blog/2019 /blog
# Custom error pages
ErrorDocument 404 /404.html
# Disable directory listings
Options -Indexes
# Block access to hidden files such as .env and .git
<FilesMatch "^\.">
Require all denied
</FilesMatch>
RedirectMatch 404 /\.git
# Security headers
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
# Compress text responses
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
AddOutputFilterByType DEFLATE application/javascript application/json application/xml application/rss+xml
AddOutputFilterByType DEFLATE image/svg+xml font/ttf font/otf
</IfModule>
# Browser caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/avif "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
</IfModule>
.htaccessジェネレーターとは?
このツールは、Apache 2.4向けにすぐ使える.htaccessファイルを生成します。HTTPSリダイレクト、wwwありまたはなしの正規ホスト、HSTS、ディレクトリ一覧の無効化、隠しファイルの保護、gzip圧縮、ブラウザキャッシュ、基本的なセキュリティヘッダーなど必要な機能にチェックを入れ、独自の301/302/410リダイレクトとカスタムエラーページを追加できます。
.htaccessジェネレーターの使い方
- 必要なオプションにチェックを入れ、wwwの扱いを選びます。
- リダイレクトを
/old-path /new-pathの形で入力します。必要に応じて続けてステータス(301、302、303、307、308、410)を指定します。 - カスタム404ページと500ページのパスを入力します。
- 結果を.htaccessとしてコピーまたはダウンロードし、まずステージングサーバーでテストしてください。
例
Force HTTPS, remove www, redirect /old-page → /new-page
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
Redirect 301 /old-page /new-page .htaccessジェネレーターを使うべき場面
メインのサーバー設定を編集できない共用ホスティングやApacheサーバーで使います。Nginx、LiteSpeed独自の設定、Cloudflare、CDNでは、それぞれの設定を使ってください。Nginxは.htaccessを完全に無視します。構文エラーがあるとディレクトリ全体でHTTP 500になるため、必ずテストしてください。
.htaccessジェネレーターの仕組み
HTTPSとwwwのルールは、<IfModule mod_rewrite.c> の中でmod_rewrite(RewriteCond %{HTTPS} off とホストの条件)を使います。HTTPSを強制する場合、wwwのリダイレクトは直接httpsを使うため、2ホップのチェーンを避けられます。パスのリダイレクトは、mod_aliasの Redirect 行(410には Redirect gone)を使います。圧縮にはmod_deflate、キャッシュにはmod_expires(静的アセットには長い有効期間、HTMLにはなし)、ヘッダーにはmod_headersの Header always set を使います。ドットファイルは <FilesMatch "^\."> と RedirectMatch 404 /\.git で拒否されます。
一般的な使用例
- 証明書のインストール後に、HTTPSと単一のwwwなしホストを強制する。
- サイトのリニューアル後に、古いURLをリダイレクトする。
- 共用ホスティングのWordPressサイトを高速化するため、圧縮とキャッシュを有効にする。
- .envや.gitファイルへのアクセスをブロックする。
よくある質問
.htaccessをアップロードした後に500エラーになるのはなぜですか。
たいていは、必要なモジュールが有効になっていないか、ディレクティブがAllowOverrideで許可されていません。Apacheのエラーログを確認してください。
HSTSは有効にすべきですか。
サイト全体とすべてのサブドメインがHTTPSで動作するようになってからにしてください。ブラウザはmax-ageの期間、平文のHTTPを拒否します。
.htaccessはNginxで動作しますか。
いいえ。Nginxは.htaccessを読みません。ルールをserverブロックに書き換える必要があります。