特定のクエリ文字列(パラメータ付きURL)のみリダイレクト処理するとき困ったからメモしとく。

特定のページIDのパラメータがついたもののみリダイレクト処理して別ページへ遷移させたいとき困ったのでメモしておく。

特定のクエリ付きURLのリダイレクト処理

例えば、特定のクエリ付きURLのページ「サイトURL/blog/?id=1234」だけリダイレクト処理かけたいとき、

RewriteEngine On
RewriteCond %{http_host} ^/blog/?id=1234
RewriteRule ^(.*) サイトURL/blog/$1 [R=301,L]

と記述してもリダイレクト処理されない。
「サイトURL/blog/?id=1234」は、「サイトURL/blog/」と認識されて、「?id=1234」の部分は認識されないらしい。。。

特定の特定のクエリ付きURLのみリダイレクト処理させたいときは、下記のように記述する。
(「サイトURL/blog/?id=1234」を、「サイトURL/blog/」にリダイレクト処理する場合)

# 特定のクエリ文字列(パラメータ付きURL)のみリダイレクト
RewriteEngine On
RewriteCond %{QUERY_STRING} id=1234
RewriteRule ^.*$ /blog? [R=301,L]

リダイレクトされた〜〜〜〜。
.htaccessはヘタするとサイトが表示されなくなってしまったりするので、必ずバックアップを取ってから作業する。あー怖かった。

参考になったサイト

.htaccessでさまざまなリダイレクト処理をするとき
下記サイトがスッキリきれいにまとまってて参考になりました。
【基本Tips】htaccessリダイレクトの書き方

こちらのブログも参考になりました。
パラメータ付きURLのリダイレクトについて

記号など正規表現について書かれていて参考になりました。
.htaccessリダイレクトの覚書

ABOUT US

yukipan
Web制作会社で働いてます。パンダとかリラックマとか、まあるいものが好き。好奇心旺盛で、何にでも興味をもってしまう。とりあえずやってみてから取捨選択するのがモットー。今はグリーンカレーとチャイと株式投資がブーム。