MovableType でタグ検索 URL をスマートにする

Posted by
ぴろり
Posted at
2009/03/28 16:33
Trackbacks
関連記事 (0)
Comments
コメント (5)
Post Comment
コメントできます
Category
MovableType カテゴリ

 お問合せ頂いた質問に答えてみます。 では,タグを指定して記事をすることができますが,その場合,通常では URL は以下のような長いものになります。

http://www.example.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=1&Template=magicvox&tag=Hogehoge

 これを以下のようなスマートな URL でアクセスできるようにする方法を紹介します。こちらの方がスッキリと記述できますし, 効果も期待できそうです。

http://www.example.com/archive/tag/Hogehoge

この記事をはてなブックマークに追加する この記事のはてなブックマーク数 | この記事をlivedoorクリップに追加する この記事のlivedoorクリップ数 | この記事をYahooブックマークに追加する この記事のYahoo!ブックマーク数 | この記事をdel.icio.usに追加する | Twitterにポストする

 これを実現するには, に mod_rewrite モジュールがインストールされている必要があります。設置方法や具体的な記述方法について詳しくは管理者に問い合わせてください。このサイト()では,.htaccess に以下のような記述をすることで,タグを静的 URL のように見せかけています。

 記述を具体的に見てみます。1 行目では の mod_rewrite モジュールによる URL の書き換え機能を有効にすることを指示しています。そして 3 行目では,URL のパス部分が /archive/tag/ から始まる場合に,2 行目で指定されたパスが実在するファイルでは無いことをチェック(!-f)し,最後に実際の処理を行う にタグ名($1)を渡しています。
 ルールとしては非常に単純なものですが,mod_rewrite を使った URL 書き換えは様々な場面で活用できるので,覚えておいて損はないでしょう。

その他の参考記事


この記事を読んだ人はこんな記事も読んでいます 記事リコメンデーションについて

その他の関連する記事


関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

寄せられたコメント (全 5 件中、最新 5 件まで表示しています)

Posted by
中年のメル友
at
2009/12/04 01:27
ID
1EouUKL2

よろしくおねがいします。

Posted by
中村ミノル
at
2009/04/25 01:35
ID
vEg6Pkso

ぴろりさま
いつぞやはありがとうございました。
mod_rewrite を使いたいのですが、上記のコードにおいて、
Template=magicvox
とは、例えばタグ・クラウドを表示するためのインデックス・テンプレートの
名前であってもよいのでしょうか?

Posted by
Tony
at
2009/04/21 22:31
ID
M1Cn1kzo

Dear UENISHI,

Thanks for you kindly advice first.

I have a test per your guide line but failed, same error "Invalid request: corrupt character data for character set UTF-8". I think there is something wrong when passing the charset code from the link http://www.abc.com/tag/汉字 to http://www.abc.com/cgi-bin/mt/mt-search.cgi&tag=汉字, because there is no problem in this scheme "http://www.abc.com/tag/english". Do you think is the writing of .htaccess?

My .htaccess config:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule archives/tags/(.+)$ /cgi-bin/mt/mt-search.cgi?&tag=$1&blog_id=1

Thanks again.

Posted by
ぴろり ◆OLEEi.VOX.
at
2009/04/18 16:52
ID
hV1Q.OQc

Hi, Tony. Thank you for your comment!

If your blog is written in UTF-8 charset, try 'encode_url' modifier for retrieving the tag name in a link. like;
<a href="/archives/tags/<$mt:TagName encode_url="1"$>"><$mt:TagName$></a>

Posted by
Tony
at
2009/04/16 23:42
ID
2YVIXdfQ

Hell UENISHI ,

I have try the rewrite function for my MT site per your instruction, below is my rules in .htaccess


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule archives/tags/(.+)$ /cgi-bin/mt/mt-search.cgi?IncludeBlogs=1&tag=$1
RewriteRule archives/keywords/(.+)$ /cgi-bin/mt/mt-search.cgi?IncludeBlogs=1&search=$1


There is no problem when my tag name is write in English, but I have problem when the MT handle the TAG write in the Chinese, it give me an error "Invalid request: corrupt character data for character set UTF-8". I have test the search template, the charset is in UTF8. I think the Japanese is fimilar with Chinese, can you tell me how you can performance in your site? (like: http://www.magicvox.net/archive/keyword/%E3%82%B5%E3%82%A4%E3%83%88%E6%A7%8B%E7%AF%89)

Thanks and best regards,
Tony

コメントを投稿する

 
 (匿名可/必須/公開)
 (匿名可/必須/非公開)
 (必須)
コメントスパム防止のため投稿前に ランダムな数字 CAPTCHAについて を入力してから投稿してください。お手数ですがご協力のほど宜しくお願いいたします。