Метод 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-адреса вашего сайта.