$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.


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

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


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


$input methods and properties

API reference based on ProcessWire core version 3.0.184

Twitter updates

  • ProcessWire 3.0.185 (dev) core updates, plus new Session Allow module— More
    17 September 2021
  • Three new ProcessWire Textformatter modules: Find/Replace, Markdown in Markup, and Emoji— More
    3 September 2021
  • This week we have a new master version released after a year in the making. With nearly 40 pull requests, hundreds of new additions and more than 100 issue reports resolved, this new version has a ton of great new stuff— More
    27 August 2021

Latest news

  • ProcessWire Weekly #383
    In the 383rd issue of ProcessWire Weekly we'll cover the latest core updates, check out a brand new third party module called Custom Admin Menus, and more. Read on!
    Weekly.pw / 11 September 2021
  • ProcessWire 3.0.184 new master/main version
    This week we have a new master/main version released after a full year in the making. As you might imagine, this new version has a ton of great new stuff and we’ll try to cover much of it here.
    Blog / 27 August 2021
  • Subscribe to weekly ProcessWire news

I just love the easy and intuitive ProcessWire API. ProcessWire rocks!” —Jens Martsch, Web developer