Skip to main content
Category:

How to change canonical URL in drupal 8 & 9

 

Code snippet that can be used to change canonical URL in drupal 8 & 9.

 

/**
 * @param array $page
 */
function MODULENAME_page_attachments_alter(array &$page)
{
    $route = \Drupal::routeMatch()->getRouteObject();
    if ($route) {
        $view_id = $route->getDefault('view_id');

        if (!empty($view_id)) {

            if ($view_id == 'news') {

              // example www.example.com/news?category=drupal
              $link_url = \Drupal::service('path.current')->getPath();


                $og_link = array(
                    '#tag' => 'link',
                    '#attributes' => array(
                        'rel' => 'canonical',
                        'canonical_url' => $link_url,
                    ),
                );
                $page['#attached']['html_head']['canonical_url'] = [$og_link, 'canonical_url'];

            }
        }
    }
}

Riadh Rahmi

Senior Web Developer PHP/Drupal & Laravel

I am a senior web developer, I have experience in planning and developing large scale dynamic web solutions especially in Drupal & Laravel.

Web Posts

Search

Page Facebook