Det är inte korrekt att avända sig av canonical om man kan använda sig av 301-redirect. 301-redirect rekommenderas alla gånger över canonical. Det finns tillfällen där 301-redirect inte fungerar och det är vid de tillfällena canonical ska användas.
Jag rekommenderar att ditt ramverk kontrollerar om den URL som anvnändaren angett är rätt, och om inte göra en 301-redirect till rätt URL.
Om du däremot verkligen hade velat visa samma information på två URL:er så hade cannoncial kanske varit ett bra alternativ.
Matt Cutts om "Canonical vs 301-redirect":
http://www.youtube.com/user/GoogleWe.../3/zW5UL3lzBOA