我为我自己的应用程序使用Kohana的路由系统,并且在为url的标记定义pcre模式时,我的本地主机的行为与生产服务器的行为不同。PCRE: w在不同服务器上的不同行为
我有这样的路线:
Route::set('list', 'list(/tagged/<tags>)',
array('tags'=>'[\w\d\-\+]+'));
这用来做工精细,直到有一天有人用含有不“标准”字符(N)的标签。在我的本地主机中没有问题,但在生产服务器中,系统无法找到路由。
在生产代码中,我需要修改该模式,并明确地将'ñ'添加到允许的字符中!
'\pL[\w\d\-\+ñ]+'
问题是,为什么?好吧,它现在起作用了,我添加了' - ',但它迟早会再次失败!
Kohana使用“u”修饰符进行匹配,因此可能意味着PCRE未使用Unicode支持进行编译,或者您未使用UTF-8语言环境。 – shadowhand 2010-12-10 09:32:51
我认为系统支持unicode,因为install.php告诉我。我敢打赌是@ mario指出的区域设置 – 2010-12-11 07:47:09