php - WWW 到非 WWW 使用 PHP 重定向

标签 php redirect

我想用 PHP 将所有 www.domain.com 请求重定向到 domain.com,基本上:

if (substr($_SERVER['SERVER_NAME'], 0, 4) === 'www.')
{
    header('Location: http://' . substr($_SERVER['SERVER_NAME'], 4)); exit();
}

但是我确实想像在 SO 中那样维护请求的 URL,例如:

http://www.stackoverflow.com/questions/tagged/php?foo=bar

应该重定向到:

http://stackoverflow.com/questions/tagged/php?foo=bar

我不想依赖 .htaccess 解决方案,而且我不确定我必须使用哪个 $_SERVER 变量来实现这一点。此外,保留 HTTPS 协议(protocol)也是一个优势。

我应该怎么做?

最佳答案

试试这个:

if (substr($_SERVER['HTTP_HOST'], 0, 4) === 'www.') {
    header('Location: http'.(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 's':'').'://' . substr($_SERVER['HTTP_HOST'], 4).$_SERVER['REQUEST_URI']);
    exit;
}

关于php - WWW 到非 WWW 使用 PHP 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2079457/

相关文章:

.htaccess - 根据查询字符串设置 htaccess 重定向

php - 在 PHP 中使用正则表达式来验证名称

php - 无法使用 Imagemagick 将 SVG 转换为 WMF

python - 在 Python 中使用 Mechanize 重定向后需要获取页面信息

PHP header ( "Location:/404.php", true, 404 )不起作用

apache - 将 http 重定向到 APACHE 站点中某个页面的 https

javascript - 单击选择关于 html 的选项后如何重定向到新窗口?

php - 可捕获的 fatal error : Object of class mysqli_result could not be converted to string in php

php - 提供股票市场信息的网络服务

php - www 不重定向到非 www .htaccess Wordpress