在我的 Zend Framework 2 应用程序中,我有一个带有体育页面链接的城市目录:
“城市”页面 ( /catalog)
马德里链接:
website.tld/catalog/Madrid柏林链接:
website.tld/catalog/Berlin伦敦链接:
website.tld/catalog/London
“伦敦体育”页面 ( /catalog/London)
富链接:
website.tld/catalog/London/Foo酒吧(Bar)链接:
website.tld/catalog/London/Bar (Bar)Baz - Baz链接:
website.tld/catalog/London/Baz - Baz
这些 URL 被转义并在我的虚拟机 (nginx) 上运行良好。但不在(Apache)服务器上。404 Error当 URL 包含方括号(例如Bar (Bar))或连字符(例如)时,我得到一个, Baz - Baz。
如何解决?
(我认为,这不是 ZF2 问题。但由于我不能确定,我也用标签标记zend-framework2了这个问题。)
编辑:
我发现了这个错误。这与 Apache 无关,而是我自己的坏事。我在 ZF2 模块配置中错误地定义了路线:
'regex' => '/catalog/(?<city>[\p{L}\p{Zs}]*)/(?<sport>[\p{L}\p{Zs}]*)'`
而不是这样的
'regex' => '/catalog/(?<city>[\p{L}\p{Zs}]*)/(?<sport>[\p{L}\p{Zs}\p{P}]*)'`