2008Feb18
リダイレクトに正規表現
http://njoy.pekori.to/ にアクセスすると http://i-njoy.pekori.to/ にリダイレクト(転送)されるようにしたのが今月の6日(「今更ながらリダイレクト」参照)。その2日後には「nJOY」と Google で検索すると https://i-njoy.net/ が1番目にヒットするようになりました。
Yahoo! の検索データベースに反映されたのは昨日確認(11日目)。
Google よりかなり時間がかかったけれど、一応リダイレクトの目的が達成できて満足です。
しかしリダイレクトに関してさらに調べていると、リダイレクトで正規表現を使える事を発見。
Redirect 301 ...とすべきところを
RedirectMatch 301 ...にする事で、URL の記述に正規表現が使えるとの事。
例えば
RedirectMatch 301 /ten_(.*).html https://i-njoy.net/ten_.htmlと書く事で、「ten_top.html」にも「ten_01.html」にも「ten_el.html」にもマッチします。
解説:
() … 正規表現として扱われるひとくくりの文字列
. … 任意のキャラクター1文字
* … 直前の文字の0回以上の繰り返し
・・・ 1つ目の () で囲まれた正規表現にマッチしている文字列
正規表現が使えるのは便利ですが、結構予期せぬマッチングを行ってしまうので注意が必要ですね。
RedirectMatch /([a-z0-9_]*).html https://i-njoy.net/.htmlと書けば下層ディレクトリにはマッチングしないと思いましたが、マッチしてほしくない質問用掲示板の過去ログ(http://njoy.pekori.to/bbs/html/njoy/thread_132.html 等)もマッチしてしまいました…。
やはり一行で自分の思い通りのリダイレクトさせるのは無理かなぁ。
PS. ちゃんとステータスコードに 301 が返されているかは「Web-Sniffer」を利用する事で確認できます。
関連記事
| 07:13 PM | comments (0) | Tweet
| サイト作成&運営::覚え書き |
コメント
コメントはありません