さくらでサブドメインを切った際にやるべきこと。整理しておかないと抜けがあったり混乱するので、まとめておくことにした。(サブドメインだけでなく、同一のホスティングサービス内でマルチドメインなんか使うときも同様)
.htaccessでRedirect(リダイレクト)
showzine.info/days/というディレクトリを作成し、このディレクトリにshowzine.infoのサブドメインdaysを割り当てる。
この段階ではサブドメインでのURLとルートドメインからディレクトリへのパスの二つのURLで同一のページにアクセスできてしまう。
- http://days.showzine.info/
- http://showzine.info/days/
これはコンテンツがカニバる(共食い)ことになり、SEOの観点からいってよろしくない。異なるURLで内容が同じということが。
なので、正規のURL(この場合はサブドメイン)でのみアクセス可能なように.htaccessでリダイレクト処理をする。借りているレンタルサーバのWebルート/showzine/days/へリダイレクト処理をするので、内容は以下のようになる。
/www/showzine/.htaccess
Redirect /days/ "http://days.showzine.info/"
wwwのありなしを301リダイレクトで統一
このままだとwwwのありもなしも、どちらでもアクセスできてしまい、これまたSEOの観点からはよろしくないらしいので、これもどちらかに統一する。今回はwwwなしで。
自分が利用しているさくらインターネットでは「マルチドメインとして使用する」がデフォルトの設定で推奨となっている。(wwwあり、なし、どちらも使えるということ)この設定のまま、以下の記述を/.htaccessに記述する。(パーミッションは644で)
/www/.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www¥.days¥.showzine¥.info
RewriteRule (.*) http://days.showzine.info/$1 [R=301,L]
リダイレクト処理が効かない場合はさくらのサーバコントロールパネル「運用に便利なツール > ファイルマネージャー」から.htaccessを編集してみる。phpなどのプログラムファイルは文字コードEUC-JPだけど.htaccessはJISらしいということが、ここで分かった。
wwwありで統一したい場合は
RewriteEngine on
RewriteCond %{HTTP_HOST} ^days.showzine.info
RewriteRule (.*) http://www.days.showzine.info/$1 [R=301,L]
robots.txtでクローラのアクセス制限
つづいて、これもコンテンツがカニバるのを防ぐためにrobots.txtを配置する。
前述の処理で
- http://days.showzine.info/sample.html
- http://showzine.info/days/sample.html
このふたつは同じものだけれども、正規のURLである後者でのみブラウザからアクセスできるようになった。
しかし、クローラに対してはアクセスを全て許可(これがデフォルト)しているので、このままだとどちらも同じ内容なのに別ページ(URLが異なるので)としてインデックスされてしまい、コンテンツの共食いが起きてしまう。(らしい)
このままだと、これまたSEOの観点からよろしくないので、クローラに対しても正規のURLでのみアクセスを許可し、インデックスしてもらうようにクローラに対してのアクセス制御をrotobs.txtで実行する。
robots.txtはサイトのルート(最上位)に置くこと。レンタルサーバで複数ディレクトリを用意し、個別にドメインを割り当てている場合でも、その最上位のWebルートディレクトリ(/)に置くこと。そして、アクセス制限をするディレクトリの指定はWebルート(/www/)からとなる。
自分の場合、レンタルサーバのWebルートには別のドメイン(例えばhogehoge.com)が割り当てられていて、その中にshowzine/やshowzine/days/がある(マルチドメインやサブドメイン割り当て)ので、hogehoge.com/showzine/やhogehoge.com/showzine/days/というURLでアクセス(インデックス)されないように、hogehoge.comから辿った場合のshowzineディレクトリ(内包するディレクトリ含む)にアクセス制限をするため、記述は以下のようになる。
/www/robots.txt
User-agent: * Disallow: /showzine/ Allow: /
これでクローラに対しても
http://days.showzine.info/sample.htmlへのアクセスだけが許可され、http://showzine.info/days/sample.htmlへのアクセスはブロックされるようになった。
ちなみに、robots.txtはあくまでもクローラのアクセスを制限したい場合にのみ設置する必要があり、そうでない場合は設置する必要はない。詳しくはGoogleの解説記事「robots.txt ファイルを使用してページをブロックまたは削除する」を参照のこと。
> robots.txt ファイルが必要となるのは、
> サイトに検索エンジンのインデックスに登録したくないコンテンツが
> 含まれる場合のみです。サイトのすべてのコンテンツを検索エンジンの
> インデックスに登録したい場合は、
> 空であっても robots.txt ファイルは必要ありません。
コメント:0
トラックバック:0
- この記事のトラックバック URL
- http://showzine.info/blog/2010/06/%e3%82%b5%e3%83%96%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e3%82%92%e5%88%87%e3%81%a3%e3%81%9f%e9%9a%9b%e3%81%ab%e3%82%84%e3%82%8b%e3%81%93%e3%81%a8.html/trackback
- トラックバックの送信元リスト
- サブドメインを切った際にやること - SHOWJIN*BLOG より