Php 如何在drupal url中正确设置自定义目的地

Php 如何在drupal url中正确设置自定义目的地,php,drupal,drupal-6,Php,Drupal,Drupal 6,我试图将目标放在drupal路径中,如下所示: http://myhost/root-folder/node/100/delete?destination=node/150?nid=300 就drupal术语而言,这有点不寻常,但这是我的要求 当我访问上面的url时,它会显示一个删除按钮和一个取消链接。但当我单击“取消”链接时,重定向的页面url如下所示: http://myhost/root-folder/node/150%3Fnid%3D300 而不是 http://myhost/roo

我试图将目标放在drupal路径中,如下所示:

http://myhost/root-folder/node/100/delete?destination=node/150?nid=300
就drupal术语而言,这有点不寻常,但这是我的要求

当我访问上面的url时,它会显示一个删除按钮和一个取消链接。但当我单击“取消”链接时,重定向的页面url如下所示:

http://myhost/root-folder/node/150%3Fnid%3D300
而不是

http://myhost/root-folder/node/150?nid=300
i、 e.
myhost
=
localhost

这意味着它将用代码
%3F
替换
,用
%3D
替换
=


如何避免此问题?

这实际上是完全正确的,第二个
位于查询字符串标识符之后(即第一个
),因此必须对其进行url编码才能保持有效

不过,不要担心,当Drupal使用代码执行重定向时,它会解码编码的字符串并重定向到正确的路径


尝试插入几个不同的URL,您将看到它们在正确编码后的样子。

您所说的“尝试替换目标”是什么意思?怎样?哪里什么时候?这不是替换。它是place@cliveMy错误,请参见下面的答案:-)即使我使用了$basepath.node/'.$nodeid./delete?'.drupal\u get\u destination()。它仍然显示node/35414/delete?destination=node%2F821%3Fnid%3D35414您到底想做什么?您如何通过代码在URL中“放置”目的地?无论哪种方式,URL被正确编码的事实会导致什么问题?为什么?正如我在问题中提到的,当我访问特定内容类型节点删除页面时,会出现删除和取消链接。单击“删除”按钮后,它使用规则模块将我重定向到其他位置。但当有人点击取消链接时,我不想重定向到同一个位置。我正在通过键入直接访问此url。单击“取消”链接后,我希望在@clive页面上被重定向如果您尝试此…
$path=url(“node/$nodeid/delete”,array('query'=>drupal_get_destination())