.htaccessとは
役割:ウェブサーバの設定ファイル
詳細:htaccess ファイルの命令文にしたがってサーバが処理してくれる
読み方:どっとえいちてぃーあくせす
ルール
- ファイル名は".htaccess"
- 文字コードはUTF-8(BOM無し)
- 改行コードはLF
- ファイルの最終行に空行を入れる
- httpd.conf で許可されている命令のみ指定可能
- 有効範囲は配置したディレクトリ以下
オンラインツール
生成ツール
チェックツール
リダイレクトとは
ページに訪れたユーザーを別のページに転送すること
リダイレクトの必要性
- 訪問ユーザー対策:サイトリニューアルやサイト移転の際、ユーザーに新しいURLを自動的に案内する
- 検索エンジン(Google)対策:古いURLに対する検索エンジンの評価を、新しいURLに引き継ぐ
リダイレクト設定の書き方
ドメイン移転 (301リダイレクト)
#RewriteEngine を起動(コメントアウト)
RewriteEngine On
RewriteCond %{http_host} ^www.old.com
RewriteRule ^(.*) https://www.new.com
/$1 [R=301,L]
または
Redirect permanent / https://www.new.com
/
※注意※
階層を保持しつつリダイレクトされるため、特定のページのみを違う場所へ転送させたい場合には、最初に書いておく
ページのURL変更1
RewriteEngine on
RewriteRule ^old.html
$ /new.html
[R=301,L]
※^
は正規表現の先頭を表す
ページのURL変更2
RewriteEngine on
RewriteRule https://www.old.com/old.html
https://www.new.com/new.html
[R=301,L]
または
Redirect permanent /old.html https://
www.new.com/new.html`
ディレクトリの変更
RewriteEngine on
RewriteRule ^old
(.*)$ /new
$1 [R=301,L]
モジュール
mod_rewrite
要求された URL をオンザフライで書き換える
ディレクティブ | 処理 | 備考 |
---|---|---|
RewriteEngine | 処理の制御 | |
RewriteBase | リダイレクト先のベースディレクトリ指定 | ※.htaccess が置かれたディレクトリから相対パス |
RewriteRule | 書き換え | [R=301] =レスポンスコードを301に指定、 [L]=(last)URLの書き換え処理終了 |
RewriteCond | 条件定義 | RewriteRule ディレクティブの前に設置 |
RewriteOptions | オプションを設定 | ディレクティブORサーバ単位 |
mod_alias
サーバにリクエストが到着したときに URL の操作や制御をする
ディレクティブ | 処理 | 備考 |
---|---|---|
Redirect | リダイレクト | リダイレクト元の URL は、/ で、リダイレクト先の URL は絶対 URL で始める。※permanent=恒久的にリダイレクト |
RedirectMatch | 正規表現を用いたリダイレクト |
参考サイト