ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
RewriteEngine On とは
RewriteEngine On は Apache の URL 書き換えモジュール mod_rewrite を有効にするディレクティブです。これを記述しておかないと、後続の RewriteRule や RewriteCond はすべて無視されます。
逆に言うと、リダイレクト・URL 正規化・拡張子の隠蔽・特定 IP の遮断など mod_rewrite で実現する処理を 1 つでも書くなら、その先頭でこのディレクティブを必ず宣言します。
書式
RewriteEngine On # 有効化(デフォルトは Off)
RewriteEngine Off # 無効化
基本例:HTTP を HTTPS にリダイレクト
最も典型的な使い方が常時 HTTPS 化です。RewriteEngine On を最初に書き、その後に条件と書き換えルールを並べます。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
詳しい SSL 設定の流れは SSLの設定 を参照してください。
www あり / なしの統一
SEO 上、example.com と www.example.com はどちらかに統一しておきます。
# www なしへ統一
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
拡張子なし URL の実現
ユーザには /about と見せて、内部では about.php を読みたいケース。
RewriteEngine On
# ファイル・ディレクトリが実在しないときだけ
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 拡張子なしを .php にマッピング
RewriteRule ^([^.]+)$ $1.php [L]
古いパスから新しいパスへ恒久リダイレクト
RewriteEngine On
RewriteRule ^old/(.*)$ /new/$1 [R=301,L]
R=301 は「恒久的に移動した」を意味するステータスコードで、SEO の評価も新しい URL に引き継がれます。
.htaccess で使うための前提
.htaccess に RewriteEngine On を書いても効かない場合、原因のほとんどが以下のどちらかです。
① mod_rewrite が有効になっていない
# CentOS / RHEL (httpd) — 標準で有効。読まれているか確認
httpd -M | grep rewrite_module
# Debian / Ubuntu
a2enmod rewrite
systemctl restart apache2
② AllowOverride が許可されていない
.htaccess を読ませるには、対象ディレクトリに対して httpd.conf 側で AllowOverride を許可する必要があります。
<Directory "/var/www/html">
AllowOverride All # ← FileInfo だけでも mod_rewrite は使える
Require all granted
</Directory>
vhost / server config と .htaccess の違い
| 記述場所 | 反映タイミング | パフォーマンス |
|---|---|---|
| vhost / httpd.conf | Apache 再起動が必要 | 速い(起動時 1 回読み込み) |
| .htaccess | 即反映(再起動不要) | 遅い(リクエスト毎にディレクトリを遡って探索) |
運用上は本番は vhost / httpd.conf に直書き、変更頻度が高い箇所だけ .htaccess に置くのが鉄則です。
よくあるエラーと対処
| 症状 | 原因 / 対処 |
|---|---|
Invalid command 'RewriteEngine' | mod_rewrite が読み込まれていない。LoadModule rewrite_module modules/mod_rewrite.so を有効化 |
| .htaccess に書いても無視される | AllowOverride None のまま。対象 <Directory> で All か FileInfo を許可 |
| 無限リダイレクトループ | 条件が常に真。RewriteCond %{HTTPS} off 等で再帰しないようにガード |
| 500 Internal Server Error | 正規表現や [flags] の書式ミス。error_log を確認 |
| 変更が反映されない | vhost に書いた場合は Apache 再起動が必要 |
関連
- Options -Indexes — 親カテゴリ(Apache のディレクティブ群)
- サイト(ドメイン)の引越し方法 — 旧 URL から新 URL へのリダイレクト
- SSLの設定 — HTTPS 化と RewriteRule の併用
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
同階層のページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?