Alias Hierarchy regenerates a node's URL/path alias and then recursively updates any children nodes. The module is also triggered when changes are made to menu items.
The Alias Hierarchy module makes use of the Pathauto module and extends its functionality. The idea behind the module is that we want node aliases to match the menu system's structure. This can be accomplished with Pathauto alone, however, there are scenarios where aliases do not get updated correctly to match changes made to a node.
Alias Hierarchy addresses those scenarios by implementing the following:
1) regenerate a node's alias if the node is moved in the menu system.
2) regenerate children aliases after editing a node or moving a node in the menu system.
3) allow for a 'custom alias' field, where users are able to change the last string in a node's alias.
The alias will be generated first using the custom alias. If it is blank, the menu title will be used. If that is blank, the node title is used as a default.
Navigate to Configuration -> Search and metadata -> URL aliases -> Patterns tab.
For the content type(s) that you want Alias Hierarchy to apply to, change the pathauto pattern to "[node:menu-link:parents:join-path]/[node:menu-link]".
Navigate to Structure -> URL Aliases -> Automated Alias Settings.
For the content type(s) that you want Alias Hierarchy to apply to, change the pathauto pattern to [menupath-raw].