いやー (´・ω・`)
いつもペラっと読んでペラっとすぐ記事書いちゃうからこういうことになる(反省しているテイ)
先回記事にした以下の内容について。

FC2ブログにパーマリンク設定(カスタムURL)が新規実装されました
sneak peek的にチラリとお知らせのあった カスタムURL機能 実装のアナウンスが届いていますので、現時点でわかっていることについての簡易説明や注意点などを。...
この中で canonical について触れています。カスタム機能を使えばURLが変わり、原則そのURLが「正規」となるわけです(301リダイレクト入れば必然的にそうなる)
で、canonical というのはまさしく「正規URL」を伝えるためにあります。その指定が私の早とちりで「不整合だよ」とか書いたんですが、実際は 個別記事の方は対応できる んですね。問題はカテゴリの方です。
結論から言うと、パーマリンク設定を行う方は、対象ページ「個別記事」「カテゴリ」の2種のうち「カテゴリ」については不整合のまま行かざるを得ない感じ (∵`)
ここからはFC2ブログの独自変数を識っていないと意味がわからないと思いますので、識ってる人にとっての「独自変数あるある」としてお読みください(笑)
カテゴリは何故か相対パス
<%topentry_link> は絶対パスで出力されるんですが、<%topentry_category_link> は 相対パス なんですよね。相対パスである、ということ自体は問題にはならない(ならなかった)んだけども、今回この新規実装に伴い以下のような変更が入っています。
<%topentry_category_link> の旧出力内容
blog-category-xx.html
<%topentry_category_link> の修正出力内容
/blog-category-xx.html
わかりづらいですが、先頭に / スラッシュが付いてるんですねこれ。事前にお知らせはありましたので、その時は「階層が増えるの?」とか軽い感じで考えていたのですがこれが相当曲者… ( ̄∀ ̄;)
独自変数の基本は「繰り返し」
<!--topentry--> とか <!--category--> とか色々ありまして、それのどれもが「繰り返し表示」を担っています。つまりページ内に3件の記事があれば3回出力作業を行うわけです。逆の発想で「1件だけ」を出力するという変数が無いんですよ。無いけれども実際は可能(裏技的に)
可能だけれども今回のケースでは不可。
カテゴリページというのは「Aカテゴリ」「Bカテゴリ」など複数のカテゴリが混ざり合って記事表示されることはありませんよね。各カテゴリをまとめているのがカテゴリページですから当然です。で、単独でURLを拾う変数が無いものですから、正規URLを特定するのにこれまでは
<%url>blog-category-<%cno>.html
こういうやり方をしてたんですね。色付き部分が変数、色なし部分は手打ち内容です。<%url>変数でまずブログURLを表記させます。SSL化していれば スキームが https:// になりますし、非SSLの場合は http:// です。これは自動出力ですから、この時点で通信プロゥトコルに関する正規化というのは事足りていた、と。<%cno> というのはカテゴリ番号です。これらが合体すると、例えば私のブログアドレスの場合は
https://vanillaice000.blog.fc2.com/blog-category-xx.html
こうして正しいURLになる、という仕組みです。
ところが今回実装されたパーマリンク設定というのは URL末尾が自由 ということで番号のような法則性がありません。故にこの部位は変数が無ければ引っ張り出すことができないデータ部位です。というわけでこういう形となる。
<%url><%topentry_category_link>
カテゴリのカスタム部位を吐き出すのが <%topentry_category_link> ですね。新規実装の original の文字列を含むものはカスタム後の内容を抽出できませんので、カスタム有りの人も無しの人も正規データを引き出せるoriginalなしの変数一択です。これだけだとダメなんで(繰りかえしされちゃうから)、さらにエリア変数などで囲ってゴニョゴニョは必要です。
で、結果こういうことになる。
https://vanillaice000.blog.fc2.com//e/カスタム内容
わかりますかね。正しいのは
https://vanillaice000.blog.fc2.com/e/カスタム内容
これです。前者はスラッシュが2連続被りしてますよね。e の前にふたつある。変数の修正によるスラッシュ追加があったためにこういうことになってしまったのですが。
URLの中途に連続したスラッシュが有る場合はひとつとみなされて処理が行われます。ですがcanonicalというのは「正規」を司るわけだから、なんかすごーく嫌じゃないか (´・ω・`)
ではスラッシュ重複が起こらぬよう、<%url> を取ってしまったらどうか。つまり相対パスにしておけば良いのではないか、と。
canonicalは絶対パスでなければいけない んです。このcanonicalは今回の件だけでなく、SSL化過程・スマホ版とのURL統合の面でも重要な役割を持っていますので、特にスキームを含むのはSSLにはものすごく重要。正規は http:// じゃないよ、canonicalなのは https:// だよ、ってことをやってるわけだから。つっても301リダレクト入れてれば別にそんな大騒ぎするようなことでもないが ←
そうは言っても実際「パソコンで検索した自分の記事をクリックしたらスマホ版で表示された…」という人はめちゃくちゃ多いでしょう。FC2では。だからレスポンシブ設定を正しく行えと何度も… というのはまた別の話です。すみません。
ともかく全体SSLが済んでいない、レスポンシブテンプレートを雰囲気で使っている、という方が多いFC2でcanonicalを外すというのはちょっと危険というか。ものすごく不親切というか(笑) なので困ってるわけなのだが?ん?
どのみち上記の方法じゃダメだけどね。該当者がどのぐらい居るかわかりませんが「カテゴリは有るけど記事はまだ無い」という場合に対応できないもので。
個人設定のOGP
カテゴリページでもOGPのURLはちゃんと出力されています。しかも日本語部位はエンコードされている。つまりは カテゴリページのURLを「単独で」抜き出す変数が存在している ということ。でもそれが見つけらんねんだよぉぉう!
えと。mochiさんを召喚したい。召喚獣(笑)
この記事ご覧になったら連絡ください。いつものようにヒント、なんなら 答えをください。 すみません(笑)
mochiさん紹介しとくか。

富士宮で貯蓄と資産運用
定期預金や投資など資産運用をアニメぬり絵画像とともに紹介。
当面は個人カスタマイズで
個別記事の方は書き直そうと思っていますが、カテゴリの方は現状維持にしておこうと思います。もちろん召喚獣が現れてあらゆる罪咎憂いを取り去りたもうてくれれば別ですが。いやホントに(笑)
とりあえずですね、「パーマリンク設定を利用する」ことが決まっており、かつ「canonicalをきれいにしたい」という方は個人で修正できるように内容を記載しますが、もう少しあがいてからにします。まぁでも不整合でも入れといてリダイレクトで… が無難かもしれないなぁ (´・ω・`)
あぁ… 一向に申請許可が降りないテンプレートも修正しないと。ちゅうか?このために待ってくれてんの?(笑)
There are no comments yet.