Zend 框架为啥这个带有西班牙字符的 url 不起作用?
Posted
技术标签:
【中文标题】Zend 框架为啥这个带有西班牙字符的 url 不起作用?【英文标题】:Zend framework why this url not working which has a spanish character?Zend 框架为什么这个带有西班牙字符的 url 不起作用? 【发布时间】:2016-03-11 19:29:32 【问题描述】:当我以http://www.example.com/Formación
访问网址时
那么路由应该匹配,但它不起作用,因为我有一个字符ó
,如何使这个ó
西班牙字符与ZF中的以下路由兼容?
$route = Http\Segment::factory(array(
'route' => '/Formación', //<<<<< this character must be used: ó
'defaults' => array(
'controller' => 'Application\Controller\Trainingsignup',
'action' => 'index'
),
));
$router->addRoute('traininges', $route, null);
编辑:也失败了
'constraints' => array(
'controller' => '[a-zA-ZóäöüÄÖÜß][a-zA-ZóäöüÄÖÜß0-9_-]+',
'action' => '[a-zA-ZóäöüÄÖÜß][a-zA-ZóäöüÄÖÜß0-9_-]+',
),
编辑:也失败了
'constraints' => array(
'controller' => '/^\pL[\pL _.-]+$/u', //or /[\pL]+/u
'action' => '/^\pL[\pL _.-]+$/u', //or /[\pL]+/u
),
【问题讨论】:
阅读这篇文章***.com/questions/15634913/… 我认为这与我的问题不同,他在谈论动作,但在我的情况下是静态控制器。 还有this one @Wilt: 这也不是有效的参考,因为他没有使用 "Http\Segment" 而是'type' => 'MyNamespace\Mvc\Router\Http\UnicodeRegex',
。我的是一个静态网址,其他人使用的是动态的。
所有示例都使用动态捕获,我有静态“/Formación”,但其他人喜欢/Formación/:itsalready-toolate-here-because-my-character is static in first block
【参考方案1】:
我诚实的回答是:不要这样做 - 请只使用 ASCII。
但如果你真的想要:How to set a (UTF8) modifier for RegEx of a RegEx Route in Zend Framework 2?
【讨论】:
以上是关于Zend 框架为啥这个带有西班牙字符的 url 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
从 zend 框架上 apache 2.4.6 的 url 中删除 index.php
Zend 框架 - 为啥我应该使用数据映射器/Db_Table_Row?