dポイントプレゼントキャンペーン実施中!

お世話になります。

現在、静的ホームページにて、多言語化の処理をしようとしております。

ルートディレクトリには、index.htmlを用意し、英語圏用のコンテンツとなっています。

その下の階層には、 /en と /ja というフォルダがあり、そこに、

/en → 英語圏用ページファイル一式
/ja → 日本語圏用ページファイル一式

が入っています。

今回、各閲覧者の言語環境にて、
上記ディレクトリのファイルを表示させることを検討しております。

ウェブ上で調べたところ、 .htaccess を使用することで、 index.html.ja index.html.en への
分岐ができることは、記載があったのですが、上記ディレクトリのような、分岐の方法については、
私の力不足か、情報を見つけることができませんでした。

なんとか、上記内容にて、ホームページを構築したく思っております。
何卒ご教示のほど、よろしくお願いいたします。

A 回答 (4件)

>ご教示いただきました方法を試させていただきます。



 でしたら、もう少し具体的に
/root
|- indexen.htm en
|- indexjp.htm jp
|- index.html
|-- /jp
|-- /en

.htaccess
AddType application/x-httpd-cgi index.html;

下位ホルダーの最上階8/en,/jp)には
AddType text/html index.html;

index.html

#!usr/locla/bin/perl

・・・
if($request="jp"){
 open(IN)・・・indexjp.htm
 while(<IN>){print;}
}
else{
 if($ENV{'HTTP_ACCEPT_LANGUAGE'}=~/ja.+/){
  open(IN)・・・indexjp.htm
  while(<IN>){print;}
 }
 else{
  open(IN)・・・indexen.htm
  while(<IN>){print;}
}

程度・・
 呼び出されたときに、サーバーの環境変数(HTTP_ACCEPT_LANGUAGE)に、ブラウザの言語が入りますから、それをつかって利用するページが変わる。
 作成時は、CGIのファイル名を変えて置いて、indexen.htmをindex.htmlなどにして作成する。フォームで、ユーザーエージェントに関わらず、他の言語を選べるようにするとユーザーにも優しいかと・・
    • good
    • 0

こんばんは。



RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:Accept-Language} ^ja [NC]
RewriteRule ^(.\)$ /ja/$1 [R, L]
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^(.\)$ /en/$1 [R, L]

とか・・・。
    • good
    • 0
この回答へのお礼

大変わかりやすいご教示ありがとうございます。
参考にさせていただきます。

お礼日時:2012/02/24 01:40

色々な方法がありますが、リダイレクトを使ってもよいのですが、サイト構成がややこしくなります。


index.htmlをCGIとして動作させて、ユーザーエージェントの要求HTTPヘッダで、内容を変えるのがもっともスマートかもしれません。ユーザーに任意に選択させることも簡単に出来ます。
    • good
    • 0
この回答へのお礼

ご返信、そして、大変わかりやすいアドバイスをいただき、ありがとうございます。
ご教示いただきました方法を試させていただきます。
失礼いたします。

お礼日時:2012/02/16 01:22

こんばんは。



具体的に、どのようなアクセス(ロケーション)で、どこを表示させたいのか。
また、その際にリダイレクトしたいのかどうか・・・。

など、教えてください。

この回答への補足

ご返信ありがとうございます。

現在、検討しております内容は、

http://ドメイン/index.html ← こちらのページを閲覧いただいた際、

英語圏の方からのアクセスであれば → http://ドメイン/en/index.heml
日本の方からのアクセスであれば → http://ドメイン/ja/index.html

のファイルを表示させようと考えております。

お手数をおかけ致しますが、何卒ご教示のほど、よろしくお願い致します。

補足日時:2012/02/16 01:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!