通过mod_rewrite将TLD转换为查询字符串参数

时间:2012-10-28 11:17:03

标签: apache mod-rewrite internationalization

寻求mod重写条件/规则组合的一些帮助,实现以下目标:

如果TLD为.fr且lang = fr不是当前参数。

  • 如果没有当前参数,请在内部添加?lang = fr。
  • 如果当前在内部请求中添加了& lang = fr参数。

目前我正在检测TLD,但无法添加“逻辑”来确定如何处理查询字符串参数修正。我需要能够通过5或6个可能的TLD来运行。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这应该有效:

RewriteEngine on
RewriteCond %{HTTP_HOST} \.([^\.]*?)$
RewriteCond %{QUERY_STRING} !lang
RewriteRule ^ %{REQUEST_URI}?lang=%1

第一行解析顶级域,存储它在%1中 第二行检查是否已设置任何语言,如果不是
是(第三行)添加到请求网址的语言参数。