1. drupal
    1. 8
    2. 7
8 – 7 hook_url_outbound_alter(&$path, &$options, $original_path)

Alters outbound URLs.


$path The outbound path to alter, not adjusted for path aliases yet. It won't be adjusted for path aliases until all modules are finished altering it, thus being consistent with hook_url_alter_inbound(), which adjusts for all path aliases before allowing modules to alter it. This may have been altered by other modules before this one.

$options A set of URL options for the URL so elements such as a fragment or a query string can be added to the URL.

$original_path The original path, before being altered by any modules.

See also


Related topics


modules/system/system.api.php, line 4025

function hook_url_outbound_alter(&$path, &$options, $original_path) {
  // Use an external RSS feed rather than the Drupal one.
  if ($path == 'rss.xml') {
    $path = 'http://example.com/rss.xml';
    $options['external'] = TRUE;

  // Instead of pointing to user/[uid]/edit, point to user/me/edit.
  if (preg_match('|^user/([0-9]*)/edit(/.*)?|', $path, $matches)) {
    global $user;
    if ($user->uid == $matches[1]) {
      $path = 'user/me/edit' . $matches[2];