How to make Canonicals with PHP

I’ve search around on SO, but can’t find an exact answer to my needs.

Generating a URL is pretty easy…

Like so:

<link rel="canonical" href="<?php echo ($_SERVER['REQUEST_URI']); ?>" />

But, the issue with this is, the $_SERVER['REQUEST_URI']) will always fetch the current file in use, so the canonical URL could potentially change.

So it could flick between and, and many other variations depending on how the user accesses your site.

How do I make it so it’s always the same url? (preferably without .php)


Worked it out myself, pretty basic:

$fullurl = ($_SERVER['REQUEST_URI']);
$trimmed = trim($fullurl, ".php");
$canonical = rtrim($trimmed, '/') . '/';


<link rel="canonical" href="<?php echo $canonical ?>" />

I’m sure there’s different methods, but it works for me.