I recently bought a couple of rugs at a great auction in New Mexico - and these are too nice to hang up with my usual 'nail/tack right through it' method. After a few online searches, I found what sounded like (and turned out to be) the easiest, cleanest way to hang a rug of all time. It costs $2 and takes 5 minutes.
Carpet tack!! It comes with nails already pre-set so you don't even have to buy (or try to find) those. You can purchase it in 3 long strips for $2 at Home Depot. Bring home your carpet tack, coat it in shellac or paint to keep the wood from leaching out the dye in your rug, then cut to size.
Once it's cut, figure out where you want to hang your rug. Nail in one side and then use a level to make sure the rest of the strip is level. Finish nailing in. Your rug is ready to hang, and will remain undamaged by the tack. Gently press your rug into the tack.
Done! It was so quick and easy that I rehung all of the rugs in our house this way, including this great Moroccan rug pictured above. Never doing it another way again.