SiteMap作成

SiteMap(サイトマップ)とは、要するにそのWebサイトの目次みたいなやつで、Webサイトの作成をする場合はこの「サイトマップ」を作成してどこにどんなページがあるのかが確認出来るように作られている事が多いです。

前述のサイトマップは、人間が視覚的にわかりやすいように作成されるものですが、検索エンジンのクローラー(要するにいろんなWebサイトを自動的に巡回して情報を集めてくるプログラム)にとってもこのサイトマップがあるとより効率よく巡回出来るようになります。もちろん、プログラムが読みやすいような形式である必要があります。

サイトマップについては「サイトマップとは何ですか。」に詳しく書かれています。

手作業でHTMLから作成しているサイトは、Sitemapも基本的にはそのサイトに合わせてゴリゴリ作成する必要があるのですが、メジャーなブログツールを使用して作られている場合には、このsitemapも動的に生成してくれるプラグインがあります。

このサイトはWordPress MUというブログツールで作成されていますが、本家WordPressではGoogle (XML) Sitemaps Generator for WordPressというのがあります。本家WordPressは投稿者一人、管理者一人というのを前提としています。

ウチで使っているWordPresssMUというのの「MU」ていうのはMulti Userの略で、投稿者複数人、管理者も複数人で扱えるようにWordPressを改造したものなのです。

だから少なくとも本家と違うのは、そのサイトひとつについてSitemapを作ればよいのではなく、ユーザーごとのSitemapが必要になってきます。
前述のSitemapGeneratorも、そのドメイン内のルートに「sitemap.xml」というファイルが作成されることに(基本的には)なっています。しかしMUでは、ユーザー毎(サブドメインなり、サブディレクトリにしてもどちらも)にsitemap.xmlを作成して公開する必要があります。

良くあるHttpServerのApacheには、「mod_rewrite」という拡張モジュールがあります。これは何かというと、要するにあるURIにアクセスしてきたら、サーバー内で読み替えて本来とは別のURIにアクセスするということをしてくれます。WordPressMUではこれを利用してユーザー毎のブログ情報を管理しています。

例えばここのブログの場合だと、mod_rewriteの記載は以下のようになっています。

RewriteEngine On
RewriteBase /
 
#uploaded files
RewriteRule ^(.*/)?files/$ index.php [L]
RewriteRule ^(.*/)?files/(.*) wp-content/blogs.php?file=$2 [L]
 
# add a trailing slash to /wp-admin
RewriteCond %{REQUEST_URI} ^.*/wp-admin$
RewriteRule ^(.+)$ /$1/ [R=301,L]
 
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
 
SecFilterEngine Off
SecFilterScanPOST Off

ずいぶん長くなったので別記事にします。


Leave a Reply