URLの末尾に .(ドット)含むURLでカスタムフィールド検索をするとサーバーの404エラーが表示される

カスタムフィールド検索で.(ドット)含む文字列で検索する場合、POST_2GETモジュールを利用して検索フォームを作成すると、検索ページのURLが以下のようになることがあります。

https://example.com/search.html/field/kataban/hoge.hoge

このようなURLの場合、Ver. 3.0.28 及び、Ver. 3.1.5 以前に a-blog cmsをダウンロードしたときに同梱されている .htaccess をそのまま利用している場合、a-blog cms が動作せず、サーバーの404エラーが表示されてしまう場合があります。

原因としては、.htaccess でCMSを実行するための mod_rewrite の記述にて、URLの末尾が特定の拡張子または、/(スラッシュ)の場合のみ a-blog cms のプログラムを実行するような指定がされている点です。

# ---------------------------
# CMSを実行
# ---------------------------
RewriteRule ((\.(html|htm|php|xml|txt|js|json|css|yaml|csv))|/)$ index.php [L]

これにより、POST_2GETモジュールを利用した検索フォームから遷移する、検索ページのURLの末尾に .(ドット)が含まれている場合、a-blog cms が動作せず、サーバーの404エラーが表示されてしまいます。

対応方法

.htaccess にて、CMSを実行するための mod_rewrite の記述を以下のように変更してください。

# ---------------------------
# CMSを実行
# ---------------------------
RewriteRule . index.php [L]