検索結果ページのURLを.htaccessで書き換える

MovableType インターネット
Movable Typeの検索用ファイル「mt-search.cgi」はスパム行...

Movable Typeの検索用ファイル「mt-search.cgi」はスパム行為の標的にされるため、ファイル名を変更するなど対策しているが、表示URLでもファイル名を含まないよう小細工を。

00903.png

.htaccess

通常の検索結果を https://kaoriz.net/keyword/北海道
タグ一覧のURLを https://kaoriz.net/tag/北海道
として、検索表示を50件、含めるブログIDで「1」「2」「3」の三つを指定、三つのうちブログID「1」の検索結果テンプレートのみを使用、mt-search.cgiをhoge-search.cgiに変更して運用する場合。

RewriteEngine on
RewriteRule ^tag/(.*)$ /mt/hoge-search.cgi?tag=$1&limit=50&blog_id=1&IncludeBlogs=1,2,3 [QSA,L]
RewriteRule ^keyword/(.*)$ /mt/hoge-search.cgi?search=$1&limit=50&blog_id=1&IncludeBlogs=1,2,3 [QSA,L]

以上を「.htaccess」ファイルに記述し、サーバーにアップ。

検索フォーム

MT使用者ではない場合でも、<mt:~>部分を各自のアドレスなどに置き換えて考えれば、応用出来る筈。

初期設定でのタグ

<form method="get" action="<mt:CGIPath><mt:SearchScript>">
<input type="text" id="search" class="ti" name="search" value="<mt:SearchString>">
<input type="hidden" name="IncludeBlogs" value="<mt:SearchIncludeBlogs>">
<input type="hidden" name="limit" value="<mt:SearchMaxResults>">
<input type="submit" value="検索">
</form>

変更後、「hidden」の値は「.htaccess」に書いてあるため、記述が減っている。

<form method="post" action="/keyword/">
<input type="text" id="search" name="search" size="31" value="">
<input type="submit" value="検索">
</form>

一行目の「method」が「get」から「post」に変更になっている。

タグリンク

ブログ記事テンプレートやタグクラウドなどに記述しているタグのリンクを変更。

<mt:TagSearchLink>

または

<mt:CGIPath><mt:SearchScript>?tag=<mt:TagName encode_js="1">&limit=50&blog_id=1&IncludeBlogs=1,2,3

など。

↓変更後

<mt:WebsiteURL>tag/<mt:TagName encode_url="1">

検索結果テンプレート

検索結果の件数が多い場合は表示するページが複数にまたがり、前後ページへのリンクも表示される。つまり、初期設定のままでは、せっかく隠したファイル名がばれてしまう。

これも.htaccessで指定すれば良いのだろうが、そもそも大量の検索結果を全て見る人もいないだろうから、前後リンクは思い切って外した。その代わり、一ページにつき20件という初期設定よりも多い50件を表示させることに。複数キーワードによる検索を勧める文章も付記。

前後リンクの記述の他、ヘッダーで読み込んでいるJava Scriptタグも要らなくなったので削除。htmlソースが減ってファイルサイズが軽くなり、読み込みも少し早くなった筈。

その他

検索用ファイル名(mt-search.cgi)を変更した場合、以前は「mt-config.cgi」に

SearchScript hoge-search.cgi

と記述していたが、テンプレートから<mt:SearchScript>が消えたので、これもわざわざ記す必要が無くなった。

あくまでも「見せ掛け」だけなので、「keyword」と「tag」というディレクトリ(フォルダ)はサーバーには存在せず、作成自体不要。

posted on September 28, 2022
-

related entries