2

我有一个多语言网站,我想在 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]

这将设置一个名为lang的 cookie ,其值等于原始 URI 中的 2 个字母前缀,域为domain.com

于 2012-10-29T19:49:39.313 回答