ModifyUrlForCanonicalTagEvent

With the PSR-14 event \TYPO3\CMS\Seo\Event\ModifyUrlForCanonicalTagEvent the URL for the href attribute of the canonical tag can be altered or emptied.

New in version 12.4.9

The methods getRequest() and getPage() have been added.

Example

Registration of the event in the Services.yaml:

EXT:my_extension/Configuration/Services.yaml
services:
  # Place here the default dependency injection configuration

  MyVendor\MyExtension\Seo\EventListener\MyEventListener:
    tags:
      - name: event.listener
        identifier: 'my-extension/modify-url-for-canonical-tag'
Copied!

Changing the host of the current request and setting it as canonical:

EXT:my_extension/Classes/Seo/EventListener/MyEventListener.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Seo\EventListener;

use TYPO3\CMS\Seo\Event\ModifyUrlForCanonicalTagEvent;

final class MyEventListener
{
    public function __invoke(ModifyUrlForCanonicalTagEvent $event): void
    {
        // Note: $event->getUrl() is dispatched with the empty string value ''
        $currentUrl = $event->getRequest()->getUri();
        $newCanonical = $currentUrl->withHost('example.com');
        $event->setUrl((string)$newCanonical);
    }
}
Copied!

API

class \TYPO3\CMS\Seo\Event\ ModifyUrlForCanonicalTagEvent

PSR-14 event to alter (or empty) a canonical URL for the href="" attribute of a canonical URL.

getUrl ( )
returntype

string

setUrl ( string $url)
param string $url

the url

getRequest ( )
returntype

Psr\Http\Message\ServerRequestInterface

getPage ( )
returntype

TYPO3\CMS\Core\Domain\Page