URLパラメータだけ違う時のApacheのリダイレクト処理の実装。
関連ページ
Apacheでは比較的に簡単にリダイレクト処理を実装できるが、"?"以降のリクエストパラメータだけ違う時は少し捻った実装が必要になる。
RewriteCondを利用してリダイレクト
Apacehでは.confファイルに書き込むことで301リダイレクト処理を実装できる。
例えば、
[対象のサイトドメイン]/profile
というURLを
[対象のサイトドメイン]/home
にリダイレクトさせたい場合は次の通り。
RewriteEngine On
RewriteRule ^/profile /home [R=301,L]
ただしこの実装は、リクエストパラメータが絡んでくると全く機能しなくなる。
例えば、
[対象のサイトドメイン]/note?id=1
というURLを
[対象のサイトドメイン]/note?id=2
にリダイレクトさせたい場合、次の記述だと動かない。
RewriteEngine On
RewriteRule ^/note?id=1 /note?id=2 [R=301,L]
リクエストパラメータが絡む場合は、RewriteRuleの前にRewriteCondの記述が必要になる。
実装は次の通り。
RewriteEngine On
RewriteCond %{QUERY_STRING} id=1
RewriteRule ^/note /note?id-2 [R=301,L]
当サイトでは、このような記述で
unity-engineer.top/note?id=U0004
にアクセスしても
unity-engineer.top/note?id=U0001
にリダイレクトしている。
0
0