【问题标题】:Drupal get path from redirect urlDrupal 从重定向 url 获取路径
【发布时间】:2014-04-16 09:51:51
【问题描述】:

我想知道在 Drupal 中是否有任何方法可以给定一个重定向另一个 URL 的 URL 获取原始 URL。

即,我有一个 url 和别名: /prices/old-vehicles -> 节点/112

并且我将 url 重定向为 ->

/old-vehicles-pricing -> /prices/old-vehicles

我想写一个函数来从“/old-vehicles-pricing”中获取“/prices/old-vehicles”

谢谢。

更新

我将尝试详细说明该场景。 假设用户登陆 old-vehicles-pricing,然后他被重定向到 /prices/old-vehicle,它是 node/112 的别名。全都正确。

现在假设用户登陆 /de/old-vehicles-pricing(德语版)。该网址重定向不存在。尽管我可以为该特定页面创建重定向,但我正在尝试获得通用解决方案。 所以我要做的是拦截无效的url,去掉语言前缀,并获取该url的原始url。 IE, 第 1 步。我拦截对 /de/old-vehicles-pricing 的请求 步骤 2. 我采取“旧车定价” 第 3 步。我获取原始别名或规范网址(/prices/old-vehicles 或 node/112) 步骤 4. 我获得了规范 url 的翻译版本 第 5 步。我将用户重定向到新翻译的 url

我只需要解决第 3 步即可。我已实施所有其他步骤。

另外,我知道用户永远不应该在“/de/old-vehicles-pricing”中启动。但这是我无法控制的事情,这就是我尝试实施此解决方案的原因。

谢谢

【问题讨论】:

  • 我不明白。当您转到 /old-vehicles-pricing 时,您想直接重定向到 /prices/old-vehicles 并且永远不会到达原始页面?为什么这个页面会这样存在?
  • 请看我上面的更新

标签: redirect drupal drupal-path-aliases


【解决方案1】:

即使我不明白您为什么创建一个页面仅用于重定向其他页面上的人,这里有一个在自定义模块中编写的解决方案:

<?php
/**
* Implements hook_menu
*/
function mymodule_menu() {
  $menu['old-vehicles-pricing'] = array(
    'title' => 'Old vehicles pricing',
    'page callback' => 'drupal_goto',
    'page arguments' => 'prices/old-vehicles',
    'access callback' => 'whetever-you-want',
  );
  return $menu;
}
?>

【讨论】:

  • 嗨,贾斯汀,感谢您的回复。我想我没有提供足够的背景来说明我正在尝试做什么。请看我上面的更新
  • 这只是多语言网址问题吗?因为我认为当某种语言中不存在 url 时,i18n 模块会管理 url 重定向。
  • 是的,这是一个多语言问题。但问题不在于我访问的页面不存在于某种语言中。该页面确实存在于所有语言中。我想要实现的是,当有人进入像“/de/old-pricing”这样的错误页面并且有一个用于“旧定价”的 url 重定向时,会将用户重定向到适当的页面。我的问题实际上是如何从 url 重定向获取 url 别名或规范 url
  • 那么,您想在被重定向到另一个页面之前记住您来自的页面吗?我建议您在重定向之前使用variable_set 保存您的current_path()。它将“node/17854”路径保存在一个变量中。
  • 不,用户登陆 /de/old-pricing,此时返回 404。我想要做的是获取默认语言的规范 url(即 /old-pricing - > /prices/old-vehicles -> node/112),然后是翻译版本。即我可以使用drupal_lookup_path() 从/prices/old-vehicles 获取规范的url。我可以使用 translation_path_get_translations() 从规范中获取翻译后的 url。我不知道的是如何从重定向 url (/old-vehicles-pricing) 获取别名 url (/prices/old-vehicles)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-20
  • 2010-09-25
  • 2013-02-24
  • 2015-05-02
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
相关资源
最近更新 更多