| 6 core.php | custom_url_rewrite_inbound(&$result, $path, $path_language) |
custom_url_rewrite_inbound is not a hook, it's a function you can add to settings.php to alter incoming requests so they map to a Drupal path. This function is called before modules are loaded and the menu system is initialized and it changes $_GET['q'].
This function should change the value of $result by reference.
Parameters
$result: The Drupal path based on the database. If there is no match in the database it'll be the same as $path.
$path: The path to be rewritten.
$path_language: An optional language code to rewrite the path into.
Related topics
File
- developer/
hooks/ core.php, line 2738 - These are the hooks that are invoked by the Drupal core.
Code
<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
global $user;
// Change all article/x requests to node/x
if (preg_match('|^article(/.*)|', $path, $matches)) {
$result = 'node' . $matches[1];
}
// Redirect a path called 'e' to the user's profile edit page.
if ($path == 'e') {
$result = 'user/' . $user->uid . '/edit';
}
}
?> Login or register to post comments
Comments
Remember, if you're rewriting
Remember, if you're rewriting the complete path to a new path that may exist in url_alias, you should call drupal_lookup on your final return because this function call occurs AFTER Drupal calls its drupal_lookup_path.
or you will get 404's on paths that are aliased etc.
function custom_url_rewrite_inbound(&$result, $in_path, $path_language) {
$result = preg_replace("/(somethingfiddly)./", "", $in_path);
if ($src = drupal_lookup_path('source', $in_path, $path_language)) {
$result = $src;
}
}