我必须创建一个多语言网站。为了实现此目标,我希望将代表一种语言的子域指向我的virtualhost
或htaccess
配置中的域的第一个 URL 参数(GET 变量)。
方案如下:
example.com => /
([a-z-]+).example.com => /?lang=$1
([a-z-]+).example.com/directory1/ => /directory1/?lang=$1
([a-z-]+).example.com/directory1/page.html => /directory1/page.html?lang=$1
等等...无论目录和页面的数量是多少。
因此,按照这个方案:
en-en.example.com matches /?lang=en-en
en-en.example.com/directory1/ matches /directory1/?lang=en-en
en-en.example.com/directory1/page.html matches /directory1/page.html?lang=en-en
等等...无论目录和页面的数量是多少。
那么我如何在我的 Apache 配置中做到这一点?
答案1
我认为您的 .htaccess 或虚拟主机配置文件中的类似内容可以解决问题;这仅匹配两个字母的子域名 - 相应地调整第一个正则表达式...例如([az-] +)
RewriteEngine On
RewriteCond %{HTTP_HOST} "^([a-z]{2})\.example\.com$"
RewriteRule "^(.*)$" http://example.com$1?lang=%1