$input->canonicalUrl() method

Generate canonical URL for current page and request

Canonical URL includes full scheme, hostname, path and optionally: URL segments, page numbers and query string.

Available since version 3.0.155.

Usage

// basic usage
$string = $input->canonicalUrl();

// usage with all arguments
$string = $input->canonicalUrl(array $options = []);

Arguments

NameType(s)Description
options (optional)array
  • scheme (string|bool): Scheme "https", "http", or omit to auto-detect (default='').
  • host (string): Hostname or omit to use current http host (default='').
  • page (Page): Page to use for URL or omit for current Page (default=$page).
  • urlSegments (array|string|bool): True to include current URL segments, false to disable, or specify array or string of URL segments to use (default=true).
  • notSegments (array|string): Full URL segments or patterns (wildcard or regex) to exclude from canonical URL (default=[])
  • pageNum (bool|int): True to include current page/pagination number, false to disable, or specify pagination number (int) to use (default=true).
  • queryString (bool|string|array): True to use current whitelist query string, false to disable, or specify array of query string vars, or actual query string as string (default=true).
  • language (bool|Language): True for current language, false to force default or no language, or specify Language object to use that language. (default=true)

Return value

string


$input methods and properties

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #550
    In the 550th issue of ProcessWire Weekly we're going to check out the latest core updates, introduce a new third party module called PagefileMetadata, and more. Read on!
    Weekly.pw / 23 November 2024
  • Custom Fields Module
    This week we look at a new ProFields module named Custom Fields. This module provides a way to rapidly build out ProcessWire fields that contain any number of subfields/properties within them.
    Blog / 30 August 2024
  • Subscribe to weekly ProcessWire news

“…building with ProcessWire was a breeze, I really love all the flexibility the system provides. I can’t imagine using any other CMS in the future.” —Thomas Aull