VirtualHost/htacess:如何将子域名指向 url 参数?

VirtualHost/htacess:如何将子域名指向 url 参数?

我必须创建一个多语言网站。为了实现此目标,我希望将代表一种语言的子域指向我的virtualhosthtaccess配置中的域的第一个 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

相关内容