听老歌 发表于 2011-05-03 20:42

drupal 代码实现URL重写

转:猫之良品

drupal 代码实现URL重写
开启了url_alter后,将实现两个HOOK,hook_url_inbound_alter与hook_url_outbound_alter,作用是重写URL,第三方URL重写模块都需要实现它。


以下是实现例子:


view sourceprint?
/** 伪地址转原地址 (url_alter)

*/

function example_url_inbound_alter(&$path, $original_path, $path_language)

{

    if (preg_match('|^article(/.*)|', $path, $matches)) {

      $path = 'node'. $matches;

    }

}

   

/*

* 原地址转伪地址 (url_alter)

*/

function example_url_outbound_alter(&$path, &$options, $original_path)

{

    if (preg_match('|^node(/.*)|', $path, $matches)) {

      $path = 'article' . $matches;

    }

}
PS: 实现hook_url_inbound_alter时不知为何会调不出实现函数,可能因为HOOK过早加载,没有把module加载完全。所以我的做法是写在URL重写模块中,例如subpath_alias
页: [1]
查看完整版本: drupal 代码实现URL重写