Notes vol.2
日々の手帖
↓

MTのページネーションに「拡張子がphpのやつは死ね」って突然言われた

34

MTをアップデートしてから、Includeで読み込んでいるページネーション(日々の手帖目次全記事更新履歴で使用している)のリンクが死んでた。

該当箇所のページネーションを使うとこんな感じのエラーがでる。

ファイル拡張子がaspやphpに設定されているため、指定されてtemplate_idを利用することが出来ません
※原文ママ

アップデートしたのは先月とかなのだけれど、今さっき気付いたっていうね...。仕事では「手前の作ったものくらい1回はチェックしろよ!」と1000万回イキっているんですけどね、蓋を開ければこんなもんですわ。

  • 僕んち拡張子は.php
  • ページネーションにはmt-search.cgiが使われている

原因はコレ☟で

注意点
検索用CGI用のシステムテンプレートなどでは、PHPをはじめとするスクリプトによるサーバサイドインクルードは動作しません。多くのサーバー環境で、セキュリティ面から実行を禁止しているためです。 https://www.movabletype.jp/documentation/server-side-includes.html

記事ページも同じく.phpなのですが、こちらのページャーはmt-search.cgiを介さないので問題がない。

解決策はコレ☟

mt-config.cgiに以下を書き足すだけ
SearchAlwaysAllowTemplateID 1
https://orima.jp/a/2012/12/12004318/

※参考サイト、ちゃんとセキュアじゃないので...踏むのは個人の判断に委ねまーす。

MT4.31からのセキュリティ対策として上記の仕様になった、ということですが、つい最近のアプデまではシレっと使えてたんですよねー。と思ってバックアップのmt-config.cgiを見てみたらちゃんとSearchAlwaysAllowTemplateID 1が書いてあった。書いた記憶超無い。