.htaccess - 根据单词翻译和Env变量的多语言RewriteRule

时间:2014-01-07 15:57:38

标签: regex apache .htaccess mod-rewrite

我正在尝试将单词列表(博客,新闻...)从英语翻译为检测到的语言,并将翻译与各种网址结构匹配,{ {1}}。

网址:

RewriteRules

首先根据检测到的语言进行翻译:

http://localhost/es/noticias

我尝试创建RewriteCond %{HTTP_HOST} ^(es)\. [OR] RewriteCond %{REQUEST_URI} .*/(es)/.* RewriteRule ^(.*) - [E=LANG:%1,E=NEWS:noticias,E=BLOGS:blogs] RewriteCond %{HTTP_HOST} ^(en)\. [OR] RewriteCond %{REQUEST_URI} .*/(en)/.* RewriteRule ^(.*) - [E=LANG:%1,E=NEWS:news,E=BLOGS:blogs] RewriteCond %{HTTP_HOST} ^(fr)\. [OR] RewriteCond %{REQUEST_URI} .*/(fr)/.* RewriteRule ^(.*) - [E=LANG:%1,E=NEWS:nouvelles,E=BLOGS:blogosphere] 之一:

RewriteRule

如何将已翻译的env变量的值(博客,新闻...)与请求的uri通过.htaccess匹配?

编辑1 - 网址和规则的示例

RewriteRule ^([^\/]+/)?(blogs|noticias)  index.php?vd=%{ENV:LANG}/$1&m=$2 [NC,QSA,L]
.
.
.

1 个答案:

答案 0 :(得分:1)

您可以backrefencing这样rewrite condition执行RewriteCond %{ENV:BLOGS}:%{REQUEST_URI} ^([^:]+):^/[^/]+/\1

\1

记下REQUEST_URI,它是用于匹配{{1}}的env变量BLOGS的后向参考。