我正在尝试编写重定向,但作为一个新手,这比我想象的要难。我想要的是:在 URL 中没有特定页面但设置了语言的情况下,重定向到该语言的主页。首先,我将告诉您当前工作站点的性质以及实现该功能的 Apache 代码:
/它/一些页面进展顺利 /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 ^([a-z][a-z])/(.*) /$2?ln=$1 [L]
这里,第 3 行是默认重定向。ast 和第 2 行将中文的例外情况改正为转到 /cn/somepage
然而
当询问根时,上述代码会出现错误:
/它/出现错误 404
/它出现错误 404
/德/出现错误 404
/德出现错误 404
/xx 应该去/xx/home?ln=xx
/xx/ 应该去/xx/home?ln=xx
这一切都是在没有/xx/的条件下特定页面当然设置好了!谢谢提供任何线索!
答案1
您需要一条如下规则:
RewriteRule ^([a-z]+)/?$ /$1/home?ln=$1 [L]
foo.com/cn
这也涵盖了类似以及 的URL 的情况foo.com/cn/
。将此规则作为链中的最后一条规则,并且仅在没有其他匹配项时才使用它。