How can I change URL of 'Add new comment' link on teaser? Currently, I have a list of teasers and they have a comment count and an 'Add new comment' link.

That link goes to a dedicated comment page with a URL of the form "/comment/reply/19#comment-form".

However, I want it to go to the actual node which has the comment form at the bottom (eg. "/node/19#comment-form").

Maybe this can be done is the template.php or some other way. Any ideas would be greatly appreciated.
Go to the admin page for your content type


  /admin/structure/types/manage/page


and check Show reply form on the same page as comments under Comment settings.

If you look at comment_node_view() in the comment module, you can see where the comment link is added to teasers.

    if (user_access('post comments')) {
      $links['comment-add'] = array(
        'title' =&gt; t('Add new comment'),
        'href' =&gt; "comment/reply/$node-&gt;nid",
        'attributes' =&gt; array('title' =&gt; t('Add a new comment to this page.')),
        'fragment' =&gt; 'comment-form',
      );
    }


To alter the link you can use hook_node_view_alter() in your module.

function MODULE_node_view_alter(&amp;$build) {
  $node = $build['#node'];
  if (isset($build['links']['comment']['#links']['comment-add'])) {
    // Alter the 'Add new comment' link.
    $build['links']['comment']['#links']['comment-add']['href'] = "node/$node-&gt;nid";
    // Fragment is the '#comment-form' part of the url.
    $build['links']['comment']['#links']['comment-add']['fragment'] = 'comment-form';
  }
}