麻姑掻痒 〜まこそうよう〜

かゆいところに手が届く

404カスタムページの表示を特定のファイルで除外する

time 2018/10/21

404カスタムページの表示を特定のファイルで除外する

また、ITネタです。

しかも「そんなことする局面ある?」みたいな設定です。
しかし、ありました。

某CMSを利用しているサイトで、CMSサーバと公開サーバが分かれています。
CMSサーバで記事を生成すると、それが公開サーバに同期される仕組みになっています。

問題はそのプレビュー機能にありました。
CMSで作成した記事のプレビューを見る際、プレビューを表示するドメインがCMS向けのドメインではなく、公開向けのドメインになってしまうんです。
なので、プレビューボタンを押下した直後では、CMSから公開サーバへの同期が間に合わず、カスタムの404ページを表示してしまう、というものでした。

で、「カスタムの404を表示したら何が悪いの?」ってところなんですが、そのカスタムの404ページは数秒経つとトップページにリダイレクトされる、というものでこれが嫌なのだそうです。
もう一回、CMSの画面に戻ってプレビューボタンを押下しないといけないので…。

そこで来た依頼が以下でした。

「プレビューに飛んで404になったときは、カスタムの404ページでなくて、apacheデフォルトの何もしない404ページを表示させられない?」

そんな変態的な要望応えられるか?と思ったんですができました。
以下です。

プレビューのファイルには規則性があって、preview-********.html になるということなので、これを含むリクエストの場合に、apacheデフォルトの404ページを表示させてます。
上手いことできました。

ErrorDocument 404 default って書くと、デフォルトを表示するとは知らなかった…。

FileMatch とかでもでもいけるのかは調べてません。
まあ、でも、ファイルがない時の処理なわけなんで、LocationMatch が適切なんじゃあないかと。

こんな挙動が必要な局面はそうないと思うんですが、同じような方の手助けになればと思っております。

sponsored link

down

コメントする






sponsored link