概要
- 転送処理は、.htaccessという設定ファイルを用いることが多い
- 配置ディレクトリとその配下にのみ適応される
外部転送
- アドレスバーのURLを書き換えて、別のディレクトリや別ページ(外部サイト)に転送
- RewriteRule の設定行末に、[R]フラグを付与する
- 301にしたい場合は[R=301]、[R] と省略すれば [R=302] と同義になる
- 上記の [R] フラグを利用するときは、必ず[L] を併記する必要がある
内部転送
- アドレスバーのURLは書き換えず、内部で表示先を変更する
- RewriteRule の設定行末に、[L]フラグのみ表記する
HTTPステータスコード
- 301は恒久
- 検索エンジンからの総合評価を、元のURLから引き継ぐことができる。
- 302は一時的
- メンテナンス時など元のURLに復帰することを前提とする
リダイレクトの書き方例
# 外部転送301リダイレクト
RewriteRule ^2020-4.php$ https://www.www.www/news/2020-5.php [R=301,L]
# 内部転送
RewriteRule ^news([0-9]*).php$ index.php?month=$1 [L]
RewriteRule ^news([0-9]*)-([0-9]*).php$ detail.php?month=$1&id=$2 [L]
- $1:ひとつ目のカッコの内容
- $2:ふたつ目のカッコの内容
参考記事
正規表現参考