有条件的Mod-Rewrite设置根目录(apache htaccess)

我试图写一个redirect,但作为一个绿色的菜鸟比我更坚强。 我想要的是:在url中没有特定页面的情况下,但是语言被设置,它将redirect到该语言的主页。 首先生病告诉你当前的工作网站的性质和Apache的代码,实现了:

/ it / somepage很好/ somepage?ln = it
/ de / somepage很好/ somepage?ln = de
/ fr / somepage很好/ somepage?ln = fr
/ cn / somepage很好/ somepage?ln = cn

# WORKS beautifully RewriteRule ^zh-CN/(.*) /$1?ln=zh-CN [L] RewriteRule ^cn/(.*) /$1?ln=zh-CN [L] RewriteRule ^([az][az])/(.*) /$2?ln=$1 [L] 

这里,第三行是默认的redirect。 ast和2nd行对中国语言的正确性除去/ cn / somepage

然而

上面的代码给出了当根被问到的时候的错误:
/它/给出错误404
/它给错误404
/ de /给出错误404
/ de给出错误404

/ xx应该到/ xx / home?ln = xx
/ xx /应该去/ xx / home?ln = xx

这一切都是在no / xx / certainpage设置的情况下,当然! 感谢任何线索!

你需要一个像这样的规则:

 RewriteRule ^([az]+)/?$ /$1/home?ln=$1 [L] 

这也涵盖了像foo.com/cnfoo.com/cn/这样的url。 将其作为链中的最后一个规则,只有在没有其他匹配的情况下才会使用。