针对特定于语言环境的页面的apache重写规则

时间:2012-11-21 20:34:46

标签: apache rewrite

我想将用户重定向到通用注册页面,如果他们在URL中没有区域设置,并且如果他们使用区域设置进入特定注册页面。由于某些原因,以下不起作用,让我知道如何解决:

RewriteCond %{QUERY_STRING} source=actp
RewriteRule ^/(en|de|fr|zh|ja|jp|ko|kr)/web/login/registration $1/web/login/registration? [R=301,L]

RewriteCond %{QUERY_STRING} source=actp
RewriteRule /web/login/registration /web/login/registration? [R=301,L]

示例:

Before: website.com/web/login/registration
after: website.com/web/login/registration?source=actp 
before: website.com/kr/web/login/registration 
after: website.com/kr/web/login/registration?source=actp

1 个答案:

答案 0 :(得分:0)

根据您之前/之后的网址,您在此处使用RewriteCond错误。在评估RewriteRule之前,它会期望查询字符串source=actp匹配。由于您之前的URL没有这样的查询字符串,因此甚至不会评估RewriteRule。你根本不需要RewriteCond。

试试这个:

RewriteRule ^/?((en|de|fr|zh|ja|jp|ko|kr)/)?web/login/registration$ /$2web/login/registration?source=actp [R=301,L]