重定向或重写drupal链接

时间:2010-10-13 06:15:59

标签: drupal-6 pathauto

我有一个自定义结构,用于浏览使用hook_menu和视图构建的内容。我希望链接到按节点类型路由到我结构中相应目标的内容。因此,虽然通常点击节点链接会将您带到node/123,但我希望将其发送到foo/123(因为节点123的类型为'foo')。

我尝试过PathAuto,但仅仅使foo/123成为node/123的别名不起作用。已使用hook_menufoo/123构建了特定结构,标签等。 PathAuto(据我所知)实际上只是显示node/123,这只是股票drupal节点显示,而不是我想要显示的内容。

我开始根据节点类型将hook_nodeapidrupal_goto放在一起进行重定向。 [制定了一些无限的重定向问题,但我确信我能解决它。]但我真的想这样做吗?让网站上的每个链接都通过HTTP重定向会不会有速度?

最好的方法是什么?

修改
实际上我认为问题是PathAuto不尊重我的hook_menu,可能不是正确的工具。 在没有设置PathAuto的情况下,我有一个hook_menu定义了foo/123的页面,其中foo是节点类型。导航到foo/###按预期工作,显示节点的自定义版本###。

现在我想将node/###重定向到foo/###,或换句话说,我希望node/###的所有链接都写为foo/###。对于PathAuto来说,这似乎是一个明显的任务,在节点类型Foo下我的模式是foo/[nid]。除了设置后,我的hook_node不再起作用。那是因为现在foo/###被路由到node/###,就像我要求的那样,显示的是vanilla drupal节点显示,而不是我的hook_menu。

1 个答案:

答案 0 :(得分:1)

实际上可以设置PathAuto来指定您的自定义路径类型。它使用令牌模块,允许您轻松重新配置pathAuto应如何构建别名...

检查pathauto的管理页面(admin / build / path / pathauto)。

修改

对于你的编辑我要做的是实现hook_menu_alter,我会修改节点/%页面回调到hook_menu中使用的回调来呈现foo / 123页面。