2

私は多言語の Web サイトを持っており、次のような URI に現在の言語を表示したいと考えています。

URI:

www.domain.com/en/
www.domain.com/en/folder1/
www.domain.com/de/
www.domain.com/de/folder2/

ディレクトリ:

public_html/
public_html/folder1/
public_html/
public_html/folder2/

次に、言語コードを処理するために en または de が Cookie に保存されます。これらを行うことは可能ですか?enまたはdeの実際のフォルダーがなくても?

4

1 に答える 1

0

mod_rewrite を使用して URI を内部的に書き換えて言語を削除し、COフラグを使用して Cookie を設定できます。したがって、次のようになります (ドキュメント ルートの htaccess ファイル内):

RewriteEngine On
# first check the the folder/file actually exists:
RewriteCond %{REQUEST_URI} ^/[a-z]{2}/(.*)$
RewriteCond %{DOCUMENT_ROOT}/%1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%1 -d
# rewrite and set cookie:
RewriteRule ^/?([a-z]{2})/(.*)$ /$2 [L,CO=lang:$1:domain.com]

これにより、元の URI の 2 文字のプレフィックスと同じ値を持つlangという名前の Cookie が設定され、ドメインはdomain.comになります。

于 2012-10-29T19:49:39.313 に答える