我听说有一种方法可以“以编程方式”为特定路径执行别名,以便我可以按照自己的意愿指定链接。假设我有这个链接的用户编辑页面:8082 / user / edit 我想要一个别名,以编程方式将用户从8082 / user / edit重定向到8082 / user / aboutus。
希望你早日来到这里。
答案 0 :(得分:0)
启用pathauto模块后,您可以使用pathauto_create_alias 如果您想更改原始网址,可以使用HOOK_menu_alter
答案 1 :(得分:0)
由于这是一个系统路径,您可以使用hook_menu_alter覆盖与编辑页面关联的功能,并在自定义模块中添加一个新功能,以编程方式重定向到该用户“aboutus”页面。
如果你有一对一的重定向,使用重定向模块就可以了。但是如果你想将每个用户的编辑页面重定向到另一个动态页面,你需要替换hook_menu_alter中的原始函数
所以你要改变这个:
$items['user/%user/edit'] = array(
'title' => 'Edit',
'page callback' => 'drupal_get_form',
'page arguments' => array('user_profile_form', 1),
'access callback' => 'user_edit_access',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'file' => 'user.pages.inc',
);
并将页面回调替换为自定义函数
$items['user/%user/edit'] = array(
'title' => 'Edit',
'page callback' => 'mymodule_redirect_user_edit',
'type' => MENU_LOCAL_TASK,
);
然后在您的自定义函数中,您可以使用drupal_goto以编程方式重定向
function mymodule_redirect_user_edit() {
drupal_goto('user/' . arg(1) . '/aboutus'), array(), 301);
}