MovableType: Schöne URLs für die Suche
MT verwendet für die Suche nach Freitext und Tags eine recht unschöne URL.
Suche nach Tags
/cgi-bin/mt/mt-search.cgi?IncludeBlogs=16&tag=Tag&limit=20
Suche nache Text
/cgi-bin/mt/mt-search.cgi?search=Suchbegriff&IncludeBlogs=16&limit=20
Ausgehend von dieser Beschreibung habe ich ich dieses mit Apache rewrite rules und Anpassungen im Template realisieren können.
So ist es besser:
/tag/Suchtag /search/Suchtext
Anpassungen für die Tags:
Apache Umleitungen in htaccess
In die .htaccess im Root Verzeichniss des Blogs folgenden Regel einfügen
RewriteRule ^tag/(.*)$ /cgi-bin/mt/mt-search.cgi?blog_id=4&tag=$1&limit=10
Template änderungen
An den Stellen an denen der Tag Link auftaucht muß dieser String
<$mt:TagSearchLink encode_js="1"$>
durch dies ersetzt werden
<$mt:BlogURL$>tag/<$mt:TagName normalize="1"$>
Bei mir waren das die Tag Cloug und Tag Entry der Beiträge
Suche:
Apache Umleitungen in htaccess:
RewriteRule ^search/(.*)$ /cgi-bin/mt/mt-search.cgi?search=$1&IncludeBlogs=4&limit=10
Template:
In meinem Template (auf Basis von Bootstrap) mußte ich die Suchmaske anpassen:
<form class="navbar-search pull-right" method="post" action="/search/"> <input type="text" name="search" value="" placeholder="Suchen" /> </form>
Pagination für die Text und die Tag Suche
Jetzt funktioniert zwar die Suche aber leider tauchen die normalen Such Url noch in der Seitennavigation der Suchergebnisse auf.
Im Template "Search Results" muß die vorhandene Regel gegen diese ausgetauscht werden.
<mt:IfStraightSearch>
<$mt:SetVar name="url-cmd" value="search"$>
</mt:IfStraightSearch>
<mt:IfTagSearch>
<$mt:SetVar name="url-cmd" value="tag"$>
</mt:IfTagSearch>
<$mt:CurrentPage setvar="aktuelle_seite"$>
<div class="pagination">
<mt:IfPreviousResults>
<li> <a href="<$mt:BlogURL$>tag/<$mt:SearchString$>&page=<$mt:var op="--" name="aktuelle_seite"$>">«</a></li>
</mt:IfPreviousResults>
<mt:PagerBlock>
<mt:IfCurrentPage>
<li class="active"> <a href="<$mt:BlogURL$>tag/<$mt:SearchString$>&page=<$mt:Var name="__value__"$>"><$mt:Var name="__value__"$></a></li>
<mt:Else>
<li><a href="<$mt:BlogURL$>tag/<$mt:SearchString$>&page=<$mt:Var name="__value__"$>"><$mt:Var name="__value__"$></a></li>
</mt:IfCurrentPage>
<mt:Unless name="__last__"></mt:Unless>
</mt:PagerBlock>
<mt:IfMoreResults>
<li><a href="<$mt:BlogURL$>tag/<$mt:SearchString$>&page=<$mt:var op="++" name="aktuelle_seite"$>">»</a></li>
</mt:IfMoreResults>
</div>