问题标签 [zend-route]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
281 浏览

regex - 对于包罗万象的情况,zend 路由器规则应该如何?

我正在尝试制作一条简单的路线来解决这个问题:

我需要为它使用一个配置(ini)文件:我们正在使用这样的路由:

事实上,我正在制作一条将旧流量重定向到新控制器(机器人、书签等)的路线。但我不知道该怎么做。有任何想法吗?我想我必须使用正则表达式,但我什至不知道如何将它包含在 ini 文件中,也不知道哪个是正则表达式。顺便说一句,除其他外,我试过这个:

但这并没有被触发。似乎*在最后添加什么都没有。我还需要什么?

0 投票
2 回答
1906 浏览

zend-framework - Zend 和 addRoute() 的问题

使用此代码:

http://app/test/param1/param2/param3 -> 好的

http://app/test/param1/param2/ -> 失败

在第二种情况下,应用程序无法识别 param2。

似乎应用程序需要 param3 才能读取 param2 ...

我该怎么做?

谢谢!


使用来自@RageZ 的代码进行测试

http://app/test/ -> 好的

http://app/test/some -> 好的

http://app/test/some/more -> 失败

http://app/test/some/more/andmore -> OK

想法?

0 投票
2 回答
223 浏览

php - 如何允许除第 1 部分和第 2 部分之外的所有内容?

这使我可以轻松获得动态输入变量,而不是像 /en/etcetcetc 那样放置静态前缀,但问题是所有控制器都被阻止了。一切都进入索引/索引。

问题:我怎么知道这条规则允许现在的一切,但不要跟踪它是否包含http://site.com/donotcatch/mehttp://site.com/iamnotbelongstodynamic1/blabla

跟进:

通常,我总是相信是的,我们可以,所以,我们可以像这样在 dynamic1 不与我的其他静态控制器交互的情况下这样做:

笔记:

  • 控制器仍然失败,例如 http://site/ajax/whatever总是去 /ajax/index 我想把它作为 /ajax/user-inserted-value 发送

如何通过保留 $dynamic1 来修复 $dynamic2 和 $dynamic3 ?

0 投票
1 回答
1961 浏览

zend-framework - Zend Framework routes.ini 有多个路由但相同的模块/控制器/动作目的地?

我的 Zend Framework PHP 应用程序的以下 routes.ini 配置文件有问题。我想只使用自己创建的静态网址。我不想使用某种 :language/ 路线!(搜索引擎优化要求)。我怎样才能做那种路由?

问题是 zend 路由器引擎只初始化了第一条路由(“de”)。Zend Router 忽略以下英文路由。是否有任何限制,我只能将一条路线用于一个目的地?为什么?

非常感谢,

斯蒂芬

0 投票
4 回答
8731 浏览

php - Magento 模块的 URL 重写

我在 Magento 中创建了一个新模块并将其命名为“文章”。它有两个前端控制器索引和文章。

在文章控制器中,我有一个名为“归档”的操作,用于根据归档列出前端/网站上的文章。一切都很好,除了网址。

现在的工作 URL 是:[http://]mydemostore/article/article/archives/01/2011

我真正需要的是 http://mydemostore/article/archives/01/2011

我不想有额外的“文章”(控制器名称)

我知道,因为我的模块名称和控制器名称相同,所以我得到了这个。如果我将我的操作放在 indexcontroller 中,我就会完成这项工作。但它不起作用。

所以我现在需要的是我不想将我的操作从“文章”移动到“索引”控制器,而我只想改变

[http://]mydemostore/article/article/archives/01/2011 到

[http://]mydemostore/article/archives/01/2011

在 .htaccess 文件上使用 Zend 路由或基本 PHP URL 重写。

请帮助我如何通过使用这两种方式中的任何一种或两种方式来完成这项工作。

非常感谢您提前检查我的问题!

0 投票
1 回答
534 浏览

php - Zend_Navigation 在编写控制器/动作时与 Zend_Router 不兼容?

Zend 框架开发新手在这里试图找出一个简单的解决方案来解决 Zend 路由问题。我相信你们中的一个专业人士可以伸出援助之手。

我有一个网站(使用 Zend_Navigation 在 Zend Framework 中构建),其中包含 75% 的静态 HTML 页面内容和一些控制器。顶级导航内置于 Zend_Navigation 中,循环遍历部分。

由于我的工作,我沿着这些思路建立了很多网站(包含很多静态页面),所以我想把它做好。我不想为这些静态页面中的每一个(有很多)设置控制器和操作,我想创建一个解决方案,在该解决方案中,我曾经Zend_Controller_Router_Route将所有静态内容自动路由到StaticController将要执行的工作基于来自某种目录的 URL 中的控制器/动作配对包含或呈现 .phtml 页面,例如/layouts/staticpages

由于 SEO 和各种原因,我不想让这些静态页面的 URL 中的控制器配对显示为/static/page/page1......它必须是/section/page(例如advantages/someadvantage)的“真实世界描述”

问题是:当我设置正确的路线时,使用Zend_Controller_Router_Route可以完成这项工作,但它会使 Zend Navigation 变得糟糕......我认为因为 Zend_Navigaion 不能很好地处理动态控制器/动作切换。

代码示例:

这很好地处理了“优势”部分中切换页面的工作,但是 Zend_Navigation 的自动控制器/动作编写和“活动”节点的突出显示最终都被搞砸了,因为它现在认为它的控制器是“静态的”和动作是“显示”。

Zend_Navigation 是否从根本上不兼容Zend_Controller_Router_Route?有没有更好的方法来做这个单一的静态页面控制器或全面处理静态内容?

0 投票
1 回答
3524 浏览

zend-framework - Zend_Controller_Router_Route_Regex 允许 '?' 在模式中

想象一下情况,当 url 看起来像

/catalog/sectionIdent?page=1

其中页面参数是可选的。

当然,应该定义自定义路由。考虑以下代码:

但这条路线不会被“?”触发 url 中的符号

没有 '?' (例如,通过向模式添加转义的 '!' 符号)一切正常。有没有办法实现'?存在于自定义的正则表达式路由中?也许我在模式上做错了什么?

PS:不要提供使用 '/' 而不是 '?',问题正是关于 Zend_Controller_Router_Route_Regex 实现中的模式限制。

0 投票
1 回答
973 浏览

zend-framework - Zend Framework - cms 页面路由

我有一个 CMS,管理员在其中构建自己的递归页面结构。每个页面都有自己的“url-key”。接下来将 url-key 与页面结构结合使用来构建 URL 结构,因此您得到以下结构:

(可选)多语言支持打开,您还可以获得语言前缀:

通过为每个页面提供自己的静态路由,然后将它们链接在一起,我几乎完成了上述工作。

$page->getRoute():

接下来,如果支持多语言,我会在所有路由前添加语言路由:

所有路线都正确组装。但是,一旦页面具有和/或是子页面,则路由不匹配。

但除了它还没有工作之外,我还想知道这是否是最好的方法。页面结构可能会变得非常大,这意味着它还会创建很多路由对象。我不确定这对性能有什么影响。

或者,我正在考虑编写一个自定义路由器/路由来处理 1 条路由中的所有 cms 路由。这也将使组装 cms-url 变得更容易。

我希望有人可以就这个问题给我一些建议。

0 投票
1 回答
490 浏览

zend-framework - Zend Route:如果链接以 /something 开头,则忽略其他规则

我有两个模块应该覆盖其他网址,基本上

/management/category/edit/id/1(编辑类别页面)

/management/category/index(管理模块中Category的索引页)

/management/category(管理模块中类别的索引页)

/women-like-men/category(从 /default/category/view/id/women-like-men 路由的 URL)

以上规则为:

有很多类似的页面存在“冲突”(画廊、电影、用户)等。

我真正想要的是一条规则,它说 /management/* 路由到模块管理/控制器/操作并忽略下面的规则,任何带有 /management 的内容。无论如何,用户/画廊/电影/类别被称为管理的可能性很低。

是否可以?

编辑,我做了这个:

/management/category 工作正常,但是之后的任何内容都会导致 404

0 投票
2 回答
243 浏览

php - zend 路由仅适用于小写字母

我在 application.ini 中设置路由,所以当我尝试访问 /moved 时,它会显示 cont/move。它有效,但前提是我输入moved的所有小写字母与第一行的设置完全相同。我怎样才能使MovedmoVed任何其他字母组合也起作用?我需要在 Bootstrap 中执行此操作以获得更好的控制吗?如何操作?