/cgi-sys/defaultwebpage.cgiへのリダイレクトキャッシュを解消する方法

/cgi-sys/defaultwebpage.cgiへのリダイレクトキャッシュを解消する方法

ホスティングサービスを利用しているサイトで何らかのエラーが発生して以下のcPanelが生成するエラーページにリダイレクトされてしまいました。

/cgi-sys/defaultwebpage.cgi

サポートに連絡してエラーは解消したのですが、ブラウザのキャッシュが残っているため、エラー発生期間中にサイトにアクセスしたブラウザ(特にChromeはキャッシュが強い)でアクセスすると、相変わらず/cgi-sys/defaultwebpage.cgiにリダイレクトされてしまいます。

自分のブラウザだけならばブラウザのキャッシュをクリアすれば良いのですが、それではサイトにアクセスする多数のユーザーのリダイレクトを解決することはできません。

いろいろ調べてみると、サーバーの再起動などで解消できるようですが、今回利用しているホスティングサービスは共用サーバーなので、そういった方法は取れません。

幸いなことに、今回のサイトはCDNとしてCloudFlareを利用していました。

CloudFlareのPage Rulesを使って、エラーページから通常のサイトトップページにリダイレクトさせたところ、上手くキャッシュを回避できました。

CloudFlareのPage Rulesで、「Forwording URL」を設定します。「Select Status Code」は「301 – Permanent Redirect」を選択し、「https://www.example.com/cgi-sys/defaultwebpage.cgi」から「https://www.example.com/」にリダイレクトを設定します。

CloudFlareを使った応急処置的な方法です。正直、共用サーバーではこれ以外の方法での解決は難しいと思います。.htacccessを使う方法など試してみましたが、結局ブラウザ側のキャッシュが先に利用されてしまいます。

ちなみにスマホのChromeはさらにキャッシュが強いようで、この方法でも解決できませんでした。むしろ、この方法を採用するとリダイレクトループが起きてしまうようです。こちらはブラウザ側のキャッシュが削除されるタイミングを待つ以外に方法は無さそうです。

※追記

実機では検証できなかったけど、リダイレクト先を「https://www.example.com/?1」のようにパラメーターをつけておけば、スマホでもリダイレクトループにならずに上手く表示できるかも。

「https://www.example.com/」にアクセス、キャッシュでリダイレクト→「https://www.example.com/cgi-sys/defaultwebpage.cgi」にアクセスしようとするとCloudFlareでリダイレクト→「https://www.example.com/?1」を表示(パラメーターがついているのでキャッシュされてるページとは別扱いになる)