(htaccess 作成) リダイレクトのために
- (2021-03-22 12:25:44)
コピペだけでダメなとき
ドメインの引越してリダイレクトを設定する際、「.htaccess」ファイルにお世話になる。
リダイレクトの記述方法はサンプルがネット内に多数でているので、コピペでさくっと作成できる。しかし、ちょっと複雑な条件をつけるとなると、記述の仕方を勉強することになる。
今日はそれではまったので記録。
どこにhtaccessの公式マニュアルはあるのか?
第一に「htaccessって何だ?」という疑問から。
ボクはリダイレクト用の標準化されたルールと思っていた。RFCで決められたルールのような。調べてみると、Apache Webサーバの設定ファイルだった。
ということはApache開発者によって決められ記述方法があるのだろう。
htaccessのサンプルを解説してくれているページは多いが、ほとんどキモの部分の抽出であり、包括的な解説ページが探し出せなかった。
Apacheの巨大なドキュメンテーションの中にあると推測されるが、そういう複雑・長文なドキュメントとなると、ボクのような素人が見ても時間の無駄かもしれない。
断片的に集めた情報
下記はhtaccessについいて解説してくれている親切な人々のサイトを回って収集してきたもの:
####################################
# htaccess のファイル形式 →
# ファイル名 → 「.htaccess」にする
# 文字コード → 「UTF-8」(BOMなし)
# 改行コード → 「LF」または「CR+LF」でも動作する
# 日本語を記述するなら文字コードはUTF-8で
# 改行コードもLinuxなのでLFが良い。CRLFでも動く
# コメント → #から行末まで
# パーミッション → (604)
# .htaccessの最後の行は改行を入れる
# [L] URLの書き換え処理を終了し以降のRewriteRuleを適用しない
# 条件式の形状は「RewriteCond A B C」。Cはパターン/オプション
# 「A = B」かつ C条件で trueを返す場合、条件に一致
# Cを指定しない場合は「A = B」の場合trueを返す
#
# RewriteEngine On → リダイレクト機能ON(有効範囲はたぶん[L]まで)
# RewriteCond → 条件(condition)
# RewriteRule → 書換ルール。書換は部分は「https://」から始める
# %{HTTP_HOST} → ドメイン部分。お尻の「/」部分は含まない
# %{REQUEST_URI}→ リクエストされたurlのドメイン以降。「/」含む
# .* → 0文字以上の任意の文字列
# ^(.*)$ → 最初から最後までの文字列。RewriteRule内では%{REQUEST_URI}
# %1 → 後方参照、RewriteCond内で、1番目の括弧内文字列、2番目文字列なら「%2」
# $1 → 後方参照、RewriteRule内で、1番目の括弧内文字列、2番目文字列なら「$2」
# [NC] → 大文字と小文字を区別しない
# !^www\. → 「!」否定、「^」先頭、「\」エスケープ、「$」末尾
# テスト環境でOKでも環境違うとNGという場合がある
# 記述ミスがあると設置したディレクトリ以下が全て500エラーになる
#