htmlの新しい属性値

f:id:tenman:20090306113526j:image
wikipedia:サン・ピエトロ大聖堂




htmlのhead内に記述する linkエレメントに、canonical属性値が登場


<link rel="canonical" href="http://www.example.com/" />

link エレメントとは、


リンクエレメントの一部の属性地を持つものは、Opera等のブラウザで、ナビゲーションとして表示されます。
このcanonicalという値は、主に検索エンジン用に、記述するもので、特に表示される事はないようです。


リンクエレメントは、htmlドキュメントが、参照している スタイルシートや、スクリプトファイル、サイト内の、別のhtmlファイル等、との関連性を記述するために使います。


link要素 XHTML HTML辞典

canonicalという値は、何を意味する。

正しいURLは、これだよ。という事をhref属性を使って、明示する。




ところで、「正しいURL」って、正しいURLだから、このページを閲覧できるんだから、そこに、正しいURLって、
なんかおかしいだろ



最近は、おかしくない事情がある。




例えば、以下のURLは、

http://www.tenman.info/cake/app/webroot/aho.php
http://www.tenman.info/cake/app/aho.php
http://www.tenman.info/cake/aho.php
http://tenman.info/cake/app/webroot/aho.php
http://tenman.info/cake/app/aho.php
http://tenman.info/cake/aho.php
全部同じページをあらわしています。



なぜこういうことになるのか

一つは、検索エンジンは、クエリ文字列つきのページを、データベースに登録しない時期があった。
現在そんな事があるのかどうかは、疑問。
また、プログラムがWEBROOTディレクトリなどを用意して、スタティックなファイル等の置き場所にするようなとき、パブリックディレクトリ直下にあるように見せかけたり、それによって、リンクが特定の部分で切れたりしないように調整するために設けたりする事もあるかもしれない。




一般的に、URLは、wwwつけてもつけなくても、同じページにたどり着けるようになっているケースが多い。
google sitemap の設定項目に、使用するドメインを、www付きかなしか、設定できるようになってたりする)

php等のスクリプトを使ったWEBページは、(ブログなんかも)URLをこぎれいにするために、mod_rewriteという仕組みを使って、

http://example.com/index.php?page=3 とかを、http://example.com/3 や http://example.com/3.html 等でアクセスできるようにしている。

mod_rewriteでこのようにアクセスできるようにしても、http://example.com/index.php?page=3でアクセスできない事はない。



さらに、最近は、スラグ という機能で、URLを表現するようになってきた。


このスラグは、URLにどんな事をもたらしているか?



http://example.com/3 スラグで、http://example.com/3/ ディレクトリ 


スラグのない時代は、http://example.com/3 は リダイレクトされて http://example.com/3/を表示した。


今は、http://example.com/3 と http://example.com/3/ は別のページを示す事ができるようにまで、ごちゃごちぇ

してしまっている。



スタティックhtmlの時には、URLは、一意だったけれど、




だから、このたび、google yahoo msn みんなでやろうよということになったのかもしれない。