ホーム > 日記 > なぜかてこ入れ

なぜかてこ入れ

引越し引越しいいつつ地味にNucleusに手入れ。

○まずコメントスパム対策。

コメントスパムの投稿自体はキャプチャの機能により阻止できていたのですが、レスポンス200を返すため一向に減らず、うざくなってきたようなのでPOSTされた情報のみログとして保存し傾向と対策を練る。
その結果、コメント本文「body」に「http://」、キャプチャ文字「var_col」に「 (半角スペース)」を含んでいた場合406エラーを返すようにフロントコントローラであるindex.phpを編集しました。

○アイテムリンクURLの統一

Nucleusのテンプレート変数<%itemlink%>は、デフォルトで<%blogurl%>?itemid=<%itemid%>という動作をしていて、もし、パラメータでblogid、catidが存在した場合、それを追加するという動作をしています。
その為、カテゴリを選択した場合固定リンクが<%blogurl%>?itemid=<%itemid%>&cid=<%categoryid%>に代わるなど同じアイテムに対して複数のURLが存在することになります。
また、RSSでは直で<%blogurl%>index.php?itemid=<%itemid%>というまた別のURLを設定してありました。
はてブで同じアイテムが複数あるのはそういうわけです。。。

というわけで、はてブ登録件数が一番多いアドレスを元に、<%itemlink%>を利用している部分を<%blogurl%>?itemid=<%itemid%>&amp;cid=<%categoryid%>に変更しました。
本当ならPATH_INFO使ったFuncyURLに対応したいとこですが、いまいち気に食わない仕様なのと、修正コストが大きいのでやめときました。
上記の場合はテンプレート編集のみの10分程度で終了。

修正したのはテンプレートのみなので、プラグインが生成する固定URLが違うのは問題として認識しています。
これ、Nucleusプラグインの仕様が影響してるんですよね。
プラグインが自由につくれるということで、ほんとに自由につくってしまったのが問題。
・プラグイン内でアイテムリンクURL生成する場合は、itemlinkを生成する関数を利用する。
・テンプレートでアイテムリンクURL生成する場合は、<%itemlink%>を利用する。
上記の規約があった上で、
・itemlinkは機能、またはプラグインでアドホックしてフォーマットを指定できるようにする。
上記の仕様であれば楽だったんですが、とても今更感。

Googleインデックスやはてブの登録されたURLどうしようかってのも問題。
Googleに関してはかってに再インデックスされるの待つか、GETで変なアドレスにきたら、「HTTP/1.1 301 Moved Permanently」を返すってことでいいけど、はてブは勝手に変更されることないだろうし、特に作業しないまま放置。

カテゴリー: 日記 タグ:
  1. コメントはまだありません。
  1. トラックバックはまだありません。