Php 使用正则表达式检查url中是否设置了语言
我正在处理一个多语言文件。我的URL如下所示:Php 使用正则表达式检查url中是否设置了语言,php,regex,Php,Regex,我正在处理一个多语言文件。我的URL如下所示: http://www.example.com/en/about/info http://www.example.com/nl/about/info preg_match('~^/[a-z]{2}/~', $_SERVER['REQUEST_URI']) 现在,我使用了一个小的正则表达式脚本,当用户使用没有语言的链接时,它会重定向用户。脚本如下所示: http://www.example.com/en/about/info http://www.
http://www.example.com/en/about/info
http://www.example.com/nl/about/info
preg_match('~^/[a-z]{2}/~', $_SERVER['REQUEST_URI'])
现在,我使用了一个小的正则表达式脚本,当用户使用没有语言的链接时,它会重定向用户。脚本如下所示:
http://www.example.com/en/about/info
http://www.example.com/nl/about/info
preg_match('~^/[a-z]{2}/~', $_SERVER['REQUEST_URI'])
这会发现是否有一个语言集en | nl | de等。这在所有链接上都可以正常工作,除了以下链接:
http://www.example.com/en
http://www.example.com/nl
没有尾随斜杠,因此正则表达式无法找到给定的值
有人知道这个问题的解决方法吗?这将在每个斜杠后匹配2个字符。不知道这是否重要,但这也将匹配
http://www.mydomain.com/enfoo
。这将在每个斜杠后匹配2个字符。不知道这是否重要,但这也将匹配http://www.mydomain.com/enfoo
。
preg_match('~^/[a-z]{2}(?:/)?~', $_SERVER['REQUEST_URI'])