WordPressで自動でサイトマップを作ってくれるプラグイン、PS Auto Sitemap。
Google先生にクロールしてもらうためにアップするサイトマップxmlを自動で生成してくれるGoogle XML Sitemaps。
こいつら、非常に便利なんですが、サイトマップページのURLに/sitemap/って使いたい場合に、デフォルトのままだとmod_rewriteの関係で競合してくれやがります。
/sitemap/
/sitemap.xml
mod_rewriteの都合でこの二つを同じものとして判断しちゃうので、
/sitemap/にアクセスしようとすると404になったり、sitemap.xmlを見に行ったり…orz
で、検索するとよく出てくる対処法が、
- サイトマップページのスラッグをsitemapからsitemapsとか違うものにする
- .htaccessにOptions -MultiViewsを書く
の2種類。
でも、サイトマップページはやっぱり/sitemapにしておきたいし、
さくらは.htaccessにOptionsが使えないし…
ってぐるぐる悩んでたら、Google XML Sitemapsの方で実に簡単に対処できることが判明(笑)
#なんでこれ検索に引っ掛かってこないんだろう???
#今じゃ実は常識なのか???
まあ、もしかしたら本当に今じゃ常識なのかもしれませんが、
念のために覚書として書いときます。
一般的に(SEOの解説とかでも)Google先生にアップするxmlファイルはsitemap.xmlって言われてますが、実はこれ、ファイル名はなんでも良かったりします(笑)
#Googleのヘルプでsitemap.xmlって書かれてるから、みんな踏襲しちゃうのかな?
サイトマップを送信する方法は次のとおりです: サイトマップ(または mRSS フィード)を自分のサイトにアップロードします。 ウェブマスター ツールのホームページで、該当するサイトをクリックします。 左側のメニューで [最適化]、[サイトマップ] の順にクリックします。 [サイトマップの追加/テスト] ボタンをクリックします。 テキスト ボックスにサイトマップへのパスを入力します(たとえば、サイトマップの場所が http://www.example.com/sitemap.xml の場合は、sitemap.xml と入力します)。 [サイトマップを送信] をクリックします。
あくまで「たとえば」なんですけどねぇ。
一方、Google XML Sitemapsで生成するsitemap.xml、
実は名前変更ができちゃうのです。
ということで、要するに上に書いた対処法1の逆パターンをやればよいわけです。
普通の人がアクセスするURL部分には/sitemap/を使って、
目に見えない(クローラしか見ない)xmlサイトマップは違うファイル名で生成、
それならファイル名の競合は起きないでしょ?
#正直こっちの方がURL的に美しいと思うんだけどなー。
なぜか検索の上位には出てこないんだよなー。
設定方法も超簡単です。
設定→XML-Sitemapの5ブロック(?)目あたりに「サイトマップファイルの場所」ってのがあって、デフォルトはsitemap.xml。
このsitemap.xmlを適当な名前に変更して、設定を保存→サイトマップを再構築してあげると、新しいファイル名のサイトマップxmlが生成されます。
(名前がダサいのは気にすんな)
但し、ここで注意が必要なのは、sitemap.xmlが既に生成済みな場合後からファイル名を変更しても上書きではなく新規生成なので、サーバー上の既存sitemap.xmlは消えません。
その為、FTPやシェルで消してあげないとファイル名の競合は解消されないので、ここはくれぐれもご注意を。
#これに気がつかなくて半日かかったのは内緒だorz
という事で、さくらのレンタルサーバでOptionsを使わずに/sitemap/とサイトマップxmlを共存させる方法でした。