На самом деле все достаточно просто. Я писал про генерацию canonical у себя в блоге:
dmnv.ru/blog/seo/chto-takoe-canonical-i-ego-generatsiya
можете использовать тело функции из примера. только у вас исключаемый get-параметр будет не "p" a "Pagen_1", или вообще его не будет - смотря как поставить задачу.
грубо говоря: берем url страницы, приводим к нижнему регистру, выкидываем все get-параметры кроме нужных, генерируем тег, вставляем его в head. все совсем несложно.