$pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
if ($_SERVER["SERVER_PORT"] != "80")
{
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}
else
{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
header('Location: '. $pageURL);
Перенаправит пользователя на ту же страницу, www. неповрежденными.
Итак, чтобы избавиться от www. мы просто заменим одну строку:
$pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
if ($_SERVER["SERVER_PORT"] != "80")
{
$pageURL .= substr($_SERVER['SERVER_NAME'], 4).":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}
else
{
$pageURL .= substr($_SERVER['SERVER_NAME'], 4).$_SERVER["REQUEST_URI"];
}
return $pageURL;
И это должно сработать.
Кстати, этот метод рекомендован Google, так как он сохраняет https://
без изменений, наряду с портами и т. Д., Если вы их используете.
Как указал Гамбо, он использует $_SERVER['HTTP_HOST']
, поскольку он исходит от заголовков вместо сервера, поэтому $_SERVER['SERVER_*']
не так надежен. Вы могли бы заменить $_SERVER['SERVER_NAME']
на $_SERVER['HTTP_HOST']
, и это должно работать так же.