馬とテニスのIT革命
馬とテニスとリラックマが好きな IT 系のエンジニアです。
Nginx

ページが見つからない時(404)にNginxとCodeigniterでトップページを表示する

とあるサイトへのアクセス状況がいまいちだったので、ドメインはそのままでサイトのジャンルを変えてリニューアルしてみました。

その際、不要な URL パスがいくつか残ってしまっているので 404 のアクセスが出続けます・・・。

Google に一度でもインデックスされてしまえば、404 でも容赦なしにアクセスはやってきてサーチコンソールが汚れて気になりますよね。

また、Google のインデックスから消えるまでは、検索結果から飛んでくるユーザーもいるわけで、404 を見せるよりはトップページへリダイレクトさせておいた方が何か恩恵があるかもしれません。

nginxの404のハンドリング設定

nginx で 404 のステータスコードを検知した時は error_page ディレクティブで内部の URL パスや外部の URL を設定します。

error_page 404 /;

error_page 404 https://exmaple.org/;

前者は同じサイト内のトップページへ、後者は別ドメインへアクセスを誘導します。

アプリに依存した設定変更

しかし、対象のサイトは PHP の Codeigniter のフレームワークを使っているアプリだったので、404 はアプリ内で独自にハンドリングされてしまっていました。

よって、フレームワーク側のルーティング設定を変えてトップページを表示させます。

$ vi application/config/routes.php

$route['404_override'] = 'index';

リダイレクトではないので、表示されている URL は 404 のパスになりますが、トップページで canonical を指定しているので害はないでしょう。

Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/10/20 14:06:04時点 Amazon調べ-詳細)

あなたにオススメ