chlonolog

web, digital gadgets, and more.

Hexoの出力するURLを単一化する

hexo-generator-seo-friendly-sitemapが出力してくれたxmlを見ると、URLはすべて/で終わっています。
しかしページのヘッダを覗いてみると、og:urlなどでindex.htmlつきのURLが採用されていました。
非常に気持ちが悪いですし、検索エンジンに両方ヒットされてもアレなので、力技でURLを正規化することにしました。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<%
  if (/index.html/.test(url)) {
    url = url.replace(/index.html/, '');
  }
  var s = url.slice(-1);
  if (s != '/') {
    url += '/';
  }
%>
  <link rel="canonical" href="<%- url %>">
  <%- open_graph({略}) %>

要はURLから「index.html」を削除しているだけです。
OGPのタグが出力される前に設定するのがミソ。

コメント

© 2018 chlono