Ответ 1
$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']
, и он должен работать одинаково.