IT実践

PukiWikiのURLをNginxで正規化【index.php非表示】

  • このエントリーをはてなブックマークに追加
  • LINEで送る

10年以上ぶりにPukiWikiをいじっているんですが、昔の情報は豊富にありますが最近の情報が乏しいですね。
PukiWikiの全盛期は、Nginxが誕生したばかりでしたので仕方ないのかもしれませんが。

PukiWikiのindex.php無しでURLを統一する

URLの正規化としてまず、

  • http://example.com/
  • http://www.example.com/
  • https://www.example.com/

これらをhttps://example.comに301リダイレクトしました。
これについては各所に載っているようにserverディレクティブを追加して、return 301~といった感じです。(ここでは詳細は割愛します)

これで完璧!と思いつつGoogle Search Consoleを眺めているとindex.php有りと無しが…。
pukiwiki.ini.phpの設定でindex.phpを表示しないという項目があります。

// Shorten $script: Cut its file name (default: not cut)
//$script_directory_index = 'index.php';

コメントアウトを外して試してみましたが、何かが違う。
確かに表示はされなくなりました。
index.php有りの膨大なURLがすでにGoogleにインデックスされているので、index.php有りで404エラーになると困るのですが、結果はindex.phpを入れたURLでもちゃんとページが表示されました。
しかしindex.phpが表示されたままの状態。ステータスコードは200。index.php有りと無しの両方のページが存在した状態です。

ということでNginxの設定を変更しました。

server {
  if ($request_uri ~* "^(.*/)index\.php(.*)$") {
    return 301 $1$2;
  }
}

上記のようにdefault serverディレクティブに書き加えて、

nginx -s reload

で完了です。

PukiWikiネタってまだ需要あるんでしょうか。
今回PukiWiki 1.5.2(utf8)をベースに以下のようなカスタマイズをしたのですが、要望があれば時間を見つけて記事にしていこうと思います。

  • 常時SSL+Nginx
  • レスポンシブ化
  • スマホ対応
  • コメント欄にGoogle reCAPTCHA v3対応
  • Google Adsenseの自動挿入
  • 各種プラグインPHP7対応&カスタマイズ
  • 出力部分を修正してHTML5でW3C合格
  • 一部jquery使用
  • GUIエディタTinyMCEeditカスタマイズ
  • 編集ページの改良
  • ページごとに重要な要素を自動取得してPC/スマホそれぞれに適した文字数でdescriptionを追加

 

何か手伝えることはありませんか?

「Web制作の人手が足りない」

「ネットショップの担当者が急に辞めた」

「サーバーの設定が苦手」

「九州のクライアントに対応できる業者を探している」

ご要望にお応えできるかもしれません。
零細ながらもデザイン・システム・サーバー運用全てを自社で15年以上行っているので柔軟な対応が可能です。

Web秘書に無料で聞いてみる

関連記事

コメントを残す

*