質問: こんにちは。 現在、日本語と英語それぞれのページを用意した多言語対応のウェブサイトを作成しているのですが、ディレクトリ構成についてご相談があります。 現在のサイトの構成は下記の様になっておりまして、ドキュメントルート下にサブディレクトリを作成する形で、各言語ごとのページを用意しています。 www.example.com →/jp/(以降日本語) →/en/(以降英語) その上で、訪問者のブラウザの言語設定によって/jp/か/en/かに振り分けるために、当初は同じドキュメントルート内にその振り分け処理を行うためだけのindnx.phpファイルを用意し、ドキュメントルートにアクセスしてきたらこのファイルをまず参照させ、その後各ディレクトリにリダイレクトさせるようにしていました。 しかし、よく考えるとこのphpファイルは中身のないファイルですから、SEO的に良くないと思い、 また、ネットの記事で見たところ、ブラウザの設定言語によってリダイレクトさせるのは、クロールが正常にいかずインデックスに不具合が起きるという様な情報もあったため、この構成をやめました。 ただそうすると、ドキュメントルートにはファイルがなくなってしまうため、当然ながらwww.example.comにアクセスすると404になってしまいます。 また、最初にアクセスされるファイルがないため、クローラーがenやjpディレクトリに到達せず、結果クロールされるファイルがなくなってしまうのではないかと懸念しています。 上記を踏まえ質問なのですが、 1やはりドキュメントルートに今回の様なリダイレクトのみを行う中身のないindex.phpファイルを置くことはSEO的にマズイのでしょうか? 2 1がそうであるとして、Googleからペナルティを受けずに、ドキュメントルートにアクセスした際にユーザーのブラウザの設定言語によってenかjpディレクトリに振り分ける方法はありますでしょうか?(htaccessやhead内にalternateタグを記載などかなと個人的に想定はしています) 以上、よろしくお願いいたします。
回答: 基本的に言語ディレクトリはつくりません。i18n 関連メソッド等により表示する内容を切り替えます。 分ける場合 ドキュメントルートには言語選択画面を設置するかデフォルト言語ディレクトリに RewriteRule などにより デフォルト言語(ja)にバックグラウンドで処理の移行をすべきかと思われます。 空白ページをおくのは見栄えがよくありません。 方法案の実現方法の1つ ============ ディレクトリ構成 ・[document root directory]/ja ・[document root directory]/en ``` #.htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /ja/$1 [L] ```