How to add canonical links on ALL URL's? What is the best way to get canonical links on ALL URL's in D7?

I see nodes already have relative canonicals but I have a site with a lot of non node URL's that also need canonicals.

I added code to my html.tpl.php to add a canonical on any page but now I get double ups on node based pages. 

Thanks for anyone taking a look at this.

UPDATE:
I used a theme_html_head_alter() hook to remove the node canonicals.
Then I added new canonicals into the html.tpl.php so every page has them and there is only one on the node pages.
As mentioned elsewhere, global redirect is a good option. But even Metatag is a good module. It not only handles the canonical urls but also meta keywords, description, Copyright data and many more important Meta data including OG. So, you can also have a check on this module. http://drupal.org/project/metatag and a tutorial on how to get the canonical url to work on this link: http://amitavroy.com/justread/content/articles/canonical-links-and-drupal-7

The one thing with meta tag module is that by default it will print relative canonical urls whereas I have seen major sites like smashingmagazine, engadget etc uses absolute. So, if you want that to happen then the second url is the key.