Hola! Me parece que ya te lo comenté una vez..., igual que el mismo archivo genera una url, un title, un h1, un contenido, a partir de una base de datos o de unas variables, puedes crear un rel canonical único.
Todo depende de como tengas organizada la web. Yo por ejemplo no tengo esos datos en una bd si no en arrays o variables. Pero como tengo url amigables y cada carpeta, seccion o página es una variable que paso por la url y la valido... luego la url canónica la genero a partir de estas variables.
Código HTML:
Ver original<link rel="canonical" href="http://www.miweb.com/<?php echo $id1; ?>/
<?php echo $id2; ?>/
<?php echo $id3; ?>.html">
Como valido las variables, generaré una url canónica única para cáda pagina, aunque alguien me deje un link sin el www o cualquier otra cosa que no genere un 404.
Esto sólo es un ejemplo, todo depende de tu estructura interna, pero si trabajas con una bd, lo más sencillo es añadir a la tabla donde tengas las variables de cada página (h1, titulo, metadescripción, etc,), una nueva variable que será para generar tu url canónica.
Saludos