0

我通过在自定义模块中定义它在我的 Drupal 6 网站中创建了一个自定义菜单项。这是一个非常简单的 MENU_NORMAL_ITEM 菜单项。菜单项定义为

/**
 * Implementation of hook_menu().
 */
function menu_test_menu() {
  $items['menu_test'] = array(
    'title' => 'Menu Test',
    'page callback' => 'menu_test_hello',
 'access callback' => TRUE,
 'type' => MENU_NORMAL_ITEM,
  );

  return $items;
}

由于我打开了干净的 URL,因此路径应该是 www.example.com/menu_test。该 URL 给了我一个 403 错误。但是,如果我输入 www.example.com/?q=menu_test,一切正常。为什么我会收到 403 错误?该菜单项是无用的,因为它总是试图转到干净的 URL 路径,这应该可以工作,但由于某种原因没有。

谢谢您的帮助!

需要明确的是... 清洁 URL 已启用,并且菜单注册表已多次重建。

4

1 回答 1

1

此问题特定于示例回调页面“menu_test”中使用的路径。更改此回调路径(例如,更改为“test_menu”)可以解决此问题。这实际上是 .htaccess 文件中的重写规则的问题。部分规则寻找“测试”作为路径的结尾。因此,就我而言,我将无法使用以“测试”结尾的任何路径。这就是我收到 403 错误的原因。

如果您遇到相同类型的问题,请检查您的重写规则是否存在类似情况。就我而言,我决定简单地避免以“测试”结束我的任何路径,这应该不会太难。

无论如何感谢您的评论!我很高兴现在弄清楚了。

更正:这不是重写规则......是保护某些文件和目录的 FilesMatch 规则。

于 2010-04-17T18:22:53.747 回答