在我的 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}]*)'`