-100p

-10p

+10p

+100p

URLパラメータに対するApacheリダイレクト

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

-100p

-10p

+10p

+100p