Методы PHP для перенаправления с «www» на «без www»

Метод 1: использование функции header()

<?php
if (substr($_SERVER['HTTP_HOST'], 0, 4) === 'www.') {
    $redirectUrl = 'https://' . substr($_SERVER['HTTP_HOST'], 4) . $_SERVER['REQUEST_URI'];
    header('Location: ' . $redirectUrl);
    exit();
}
?>

Метод 2. Изменение файла.htaccess (сервер Apache)

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

Способ 3. Изменение файла конфигурации Nginx (сервер Nginx)

server {
    server_name www.example.com;
    return 301 $scheme://example.com$request_uri;
}

Метод 4. Использование функции filter_var()

<?php
$host = $_SERVER['HTTP_HOST'];
$host = filter_var($host, FILTER_SANITIZE_URL);
$host = str_replace('www.', '', $host);
$redirectUrl = 'https://' . $host . $_SERVER['REQUEST_URI'];
header('Location: ' . $redirectUrl);
exit();
?>

Метод 5. Использование подхода, специфичного для предметной области

<?php
$domain = $_SERVER['HTTP_HOST'];
$redirectUrl = str_replace('www.', '', $domain) . $_SERVER['REQUEST_URI'];
header('Location: https://' . $redirectUrl);
exit();
?>

Перенаправление с версии вашего веб-сайта с www на версию без www имеет решающее значение для поддержания единообразной структуры URL-адресов и оптимизации вашего веб-сайта для SEO. В этой статье мы рассмотрели пять различных методов реализации этого перенаправления с помощью PHP. В зависимости от конфигурации и предпочтений вашего сервера вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Не забудьте тщательно протестировать перенаправления, чтобы убедиться, что они работают правильно, и соответствующим образом обновить канонические URL-адреса вашего сайта.