PHPSESSID in your URL? Learn to 301 redirect them with PHP

I’m doing some work on a site which has like 4,500 pages indexed with a PHPSESSID in the URL, causing some major duplicate content problems. I got the server admin to disable the PHPSESSID’s by adding the following to the vhost config:

[code]php_value session.use_trans_sid 0
php_value session.use_only_cookies 1[/code]

I also wanted Google to get a clean URL when it decided to spider one of the old URL’s again, and didn’t have access to mod_rewrite, so I redirected them with some PHP. The solution is quite simple:

[code]if (isset($_GET[‘PHPSESSID’])) {
$requesturi = preg_replace(‘/?PHPSESSID=[^&]+/’,””,$_SERVER[‘REQUEST_URI’]);
$requesturi = preg_replace(‘/&PHPSESSID=[^&]+/’,””,$requesturi);
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://”.$_SERVER[‘HTTP_HOST’].$requesturi);
exit;
}[/code]

Webinar

SEO for beginners webinar

21 July 2026

Learn the essentials to start SEO confidently and boost your site’s visibility.

All Yoast SEO Webinars
Event

Sorry! We don't have an event planned at the moment.

Keep an eye on our site and social media to stay up-to-date.

All events
Podcast

Sorry! We don't have a podcast planned at the moment.

Keep an eye on our site and social media to stay up-to-date.

All Yoast SEO Podcasts

Discussion (19)