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]