没有重定向的多语言站点的Htaccess别名

时间:2014-02-20 13:00:34

标签: .htaccess dns alias multilingual

我有一个多语种网站

  • example.com - english
  • example.com/it/ - italian

我需要example.it/(.*)来处理example.com/it/$1上的请求,而无需重定向到example.com。只是为了保持example.it并处理对example.com/it /

的所有请求

1 个答案:

答案 0 :(得分:0)

正如Apaches rewrite module的文档中所解释的那样,这些例子应该指向正确的方向。

使用添加请求参数lang的示例:

RewriteEngine On
RewriteLog /var/log/apache2/rewrite_log
RewriteLogLevel 3
RewriteRule ^/(it|fr|no)/(.*)$  /$2?lang=$1  [L,QSA]

规则要注意所有对http(s)://example.com //的请求都在内部重写,以便http(s):// example.com / ...?lang = is调用。发送链接时请注意仅使用相对链接。

使用环境变量LANG的示例,可以通过某些脚本或其他任何内容进行评估:

RewriteEngine On
RewriteLog /var/log/apache2/rewrite_log
RewriteLogLevel 3
RewriteRule ^/(it|fr|no)(/.*)$  $2  [L,E=LANG:$1,QSA]

请注意,我运行此代码,我只是将其写下来,所以如果提到一些错误,您可能需要稍微调整一下。还可以尝试使用RewriteLogLevel(值0-9),这有助于理解重写引擎内部的情况。