Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 如何创建pathauto-same stackoverflow.com_Drupal_Pathauto - Fatal编程技术网

Drupal 如何创建pathauto-same stackoverflow.com

Drupal 如何创建pathauto-same stackoverflow.com,drupal,pathauto,Drupal,Pathauto,我知道stackoverflow.com使用模块pathauto。我想在drupal中使用pathauto来创建pathauto URI。但我不知道怎么做 示例:domain.com/node/1使用pathauto后,然后domain.com/article/1/title节点 现在我想转到domain.com/article/1/???然后它仍然显示节点1,而不是显示未找到的页面。使用pathauto无法做到这一点,因为它所做的只是为URL创建别名。因此,您必须使用与生成时完全相同的URL

我知道stackoverflow.com使用模块pathauto。我想在drupal中使用pathauto来创建pathauto URI。但我不知道怎么做

示例:domain.com/node/1使用pathauto后,然后domain.com/article/1/title节点


现在我想转到domain.com/article/1/???然后它仍然显示节点1,而不是显示未找到的页面。

使用pathauto无法做到这一点,因为它所做的只是为URL创建别名。因此,您必须使用与生成时完全相同的URL

堆栈溢出的方式略有不同,因为它们只是忽略URL中作为问题标题出现的任何内容。他们可以这样做,因为URL解析器是完全不同的。对于Drupal,您可能需要寻找另一个模块或使用自己的模块。Pathauto只需点击普通URL别名并自动为您生成它们。不多也不少


drupal.org上的搜索结果会产生相当多的匹配项。其中一些可能会执行您想要的操作。

您不能使用pathauto执行此操作,因为它所做的只是为URL创建别名。因此,您必须使用与生成时完全相同的URL

堆栈溢出的方式略有不同,因为它们只是忽略URL中作为问题标题出现的任何内容。他们可以这样做,因为URL解析器是完全不同的。对于Drupal,您可能需要寻找另一个模块或使用自己的模块。Pathauto只需点击普通URL别名并自动为您生成它们。不多也不少


drupal.org上的搜索结果会产生相当多的匹配项。他们中的一些人可能会做你想做的事。

编辑-我有一个更好的主意

我在下面留下我的原始答案,但我想我有一个更好的主意。。。您可以在自己的自定义模块中或在settings.php中实现,以去除页面请求中的连字符部分,从而使url
/article/1/my title
始终更改为
/article/1
。从节点/XXX到项目/XXX的别名仍将由pathauto完成

我最初的回答是:

我不知道是否有一个模块已经做到了这一点,但实现你想要的是相当容易的。您应该实现自己版本的定义函数,该函数将由以“article”开头的URL触发(例如“article/1/title节点”)

对于hook_菜单,每个由斜杠分隔的位都是一个参数,可以传递给回调函数,因此您需要将数字传递给回调函数(以便回调函数加载正确的节点),并放弃所有其他内容

假设您使用的是Drupal 6,您的菜单项定义应该如下所示:

$item['article'] = array(
  'title' => 'My URL article redirect',
  'page callback' => 'name_of_my_callback_function',
  'page arguments' => array(1), //this passess the second bit of the URL
  'type' => MENU_CALLBACK,
);

希望这有帮助

编辑-我有个更好的主意

我在下面留下我的原始答案,但我想我有一个更好的主意。。。您可以在自己的自定义模块中或在settings.php中实现,以去除页面请求中的连字符部分,从而使url
/article/1/my title
始终更改为
/article/1
。从节点/XXX到项目/XXX的别名仍将由pathauto完成

我最初的回答是:

我不知道是否有一个模块已经做到了这一点,但实现你想要的是相当容易的。您应该实现自己版本的定义函数,该函数将由以“article”开头的URL触发(例如“article/1/title节点”)

对于hook_菜单,每个由斜杠分隔的位都是一个参数,可以传递给回调函数,因此您需要将数字传递给回调函数(以便回调函数加载正确的节点),并放弃所有其他内容

假设您使用的是Drupal 6,您的菜单项定义应该如下所示:

$item['article'] = array(
  'title' => 'My URL article redirect',
  'page callback' => 'name_of_my_callback_function',
  'page arguments' => array(1), //this passess the second bit of the URL
  'type' => MENU_CALLBACK,
);

希望这有帮助

我假设您想要做的是有一个像
http://example.com/article/ID/title
其中
标题
部分几乎被忽略,它将转到
http://example.com/article/ID
无论为
标题输入什么

您可以设置一个具有路径
http://example.com/article
它接受
ID
作为用于指定单个文章的参数-很可能是nid。然后,它应该忽略它后面的任何内容。

我假设您想要做的是有一个类似
http://example.com/article/ID/title
其中
标题
部分几乎被忽略,它将转到
http://example.com/article/ID
无论输入的是什么
标题

您可以设置一个具有路径
http://example.com/article
它接受
ID
作为用于指定单个文章的参数-很可能是nid。然后,它应该忽略其后的任何内容。

您是否尝试过全局重定向,以确保只看到别名路径? 那么子路径别名呢?它还允许您将alias用作子路径。 例如,假设节点/1别名为blog/johndoe/my first post,您可以使用blog/johndoe/my first post/edit对其进行编辑


我想您可以使用这些模块。

您是否尝试过全局重定向,以确保只看到别名路径? 那么子路径别名呢?它还允许您将alias用作子路径。 例如,假设节点/1别名为blog/johndoe/my first post,您可以使用blog/johndoe/my first post/edit对其进行编辑


我想您可以使用这些模块。

这也是一个解决方案。如果您将视图用于除此之外的其他内容,那么这是有意义的。。。否则就像是像火箭筒一样猎鸟。[视图是一个重量级模块,如果你只需要做这个简单的把戏,就不值得安装它]:)这也是一个解决方案。如果使用视图进行某些操作,这是有意义的