URL rewriting within Drupal

URL rewriting within Drupal

Submitted by Jitesh Doshi on

You probably already know how to do URL rewriting using Apache. Here's how you can rewrite paths within Drupal. Added a function named "custom_url_rewrite_inbound" to your settings.php file.

function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  // convert u/xyz to user/xyz/edit
  // $result = preg_replace('/^u\/(.*)/', 'user/${1}/edit', $path);
  // convert u/xyz to user/xyz/view
  $result = preg_replace('/^u\/(.*)/', 'user/${1}/view', $path);
}

It has to be in settings.php file so that this function is defined even before Drupal core executes. So now if you hit URL http://localhost/u/555, it will take you to http://localhost/user/555/view

D7 UPDATE: In D7, you don't have to touch settings.php. You can simply implement the hook_url_inbound_alter.

 

Jitesh Doshi

Profile picture for user Jitesh Doshi
Managing Partner & CTO
  • A seasoned technology entrepreneur and enthusiast
  • A regular speaker at industry conferences and universities
  • Host and organizer of technology user groups
  • Active in management of non-profit organizations serving the local community
  • Leader and contributor for multiple open-source projects
  • Expert in cloud, application integration, web and mobile technologies
  • Author of open-source projects, including on Drupal.org - Popular Tags and PRLP.
  • Developed several highly successful software platforms and frameworks for cl