Overriding hook_menu() { $items } For example, here's a snippet form the Comments Module (comment.module):

function comment_menu() {
  $items['comment/%'] = array(
    'title' =&gt; 'Comment permalink',
    'page callback' =&gt; 'comment_permalink',
    'page arguments' =&gt; array(1),
    'access arguments' =&gt; array('access comments'),
  );
  $items['comment/reply/%node'] = array(
    'title' =&gt; 'Add new comment',
    'page callback' =&gt; 'comment_reply',
    'page arguments' =&gt; array(2),
    'access callback' =&gt; 'node_access',
    'access arguments' =&gt; array('view', 2),
    'file' =&gt; 'comment.pages.inc',
  );

  return $items;
}


How can I override $items['comment/%'] with $items['comment/reply/%node'], without hacking core.

In other words, I need example.com/comment/[cid] to look exactly like example.com/comment/reply/[nid]/[cid]?
Yes, you should use hook_menu_alter
Create new module and add hook_menu_alter

function my_module_menu_alter(&amp;$items) {
    // Unset core path
    unset($items['comment/%']);
    $items['your/pass/here/%node'] = array(
        'title' =&gt; 'Add new comment',
        ...
      );
}


But link "comment/reply/%nid/%cid" is used by Drupal for replies to other comments (where %nid - node id and %cid - comment id you are replying to). Use another path.