Category Archives: Blosxom

URLから/cgi-bin/~.cgiを隠す

当ブログはblosxom.cgiを使わせて頂き構築しているのですが、そうするとホームページのURLが標準では~/cgi-bin/blosxom.cgiとなります。もちろんこれでも問題は無いわけですが、URLを紹介するときに長くなるしなんとなくスマートではない。っつーわけで、自室にこもる時間が長くなる時節柄、ちょっと時間を掛けて当ホームページから/cgi-bin/~.cgiを隠してみました。

.cgiを隠す

WEBサーバの/cgi-bin/.htaccessに下記構文を追記して、.cgiなしのリクエストを.cgiがあるものとして処理させます。(blosxomへのリクエストがblosxom.cgiへのリクエストとして処理され、結果URLから.cgiが見えなくなる)

/cgi-bin/.htaccess 

AddType application/x-httpd-cgi .cgi
MultiviewsMatch Handlers
Options +MultiViews

/cgi-bin/を隠す

単純に、/cgi-bin/を/jq3btu/にrenameしました。webソース内の色々な箇所に/cgi-bin/の記載があるため、全て書き換えて完成と思ったら、blosxomのページ切り替えのプラグインpaginateが拡張子なしに対応していないようで不具合を起こしてしまいました。カテゴリ分けした表示をしてる状態でページ切り替えをする時にpaginateリンク先URLが異常となって誤動作を起こすようで、paginateの改良。これはソースを解析するのちょっと時間が掛かりました。簡単な正規表現を追加しただけですが、正規表現が苦手な私はまたここでちょっと勉強・・・

paginate 

$prev_url = url(-path_info=>1,-query=>1);
$prev_url =~ s|$blosxom::url||;			# 追加 拡張子なしのアクセスでの不具合対応
$prev_link = fill_template('paginate_prev_link');
 :
$curr_url = url(-path_info=>1,-query=>1);
$curr_url =~ s|$blosxom::url||;			# 追加 拡張子なしのアクセスでの不具合対応
 :
$next_url = url(-path_info=>1,-query=>1);
$next_url =~ s|$blosxom::url||;			# 追加 拡張子なしのアクセスでの不具合対応
$next_link = fill_template('paginate_next_link');

ブログにシェアボタン追加

ウェブサーフィンをしているとよく見かける「いいね」「シェア」のボタン。私も欲しくなってブログにつけてみました。公式サイトに詳しい方法が書かれているので簡単です。自分のサイトに下記コードを追記します。

[$url$path/$fn.html]の部分は設置したページ自身のアドレスでシェア先のアドレスですので、適宜変更下さい。

blosxomにおいてはstory.htmlの$bodyの下あたりに追記します。特に変更は不要だと思いますが、細かい設定変更については公式サイトを御参照下さい。

公式サイトはコチラ→ FacebookLineTwitter

story.html

<!--Facebook Shere-->
	<iframe src="https://www.facebook.com/plugins/share_button.php?href=$url$path/$fn.html&layout=button&size=small&width=69&height=20&appId" width="69" height="20" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allow="encrypted-media"></iframe>
<!--Line Shere-->
	<div class="line-it-button" data-lang="ja" data-type="like" data-url="$url$path/$fn.html" data-share="true" style="display: none;"></div>
<script src="https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js" async="async" defer="defer"></script>
<!--Twitter Shere-->
	<a href="https://twitter.com/share?ref_src=twsrc%5Etfw" class="twitter-share-button" data-url="$url$path/$fn.html" data-lang="ja" data-show-count="false">Tweet</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>