首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHP将WWW重定向到非WWW

使用PHP将WWW重定向到非WWW
EN

Stack Overflow用户
提问于 2010-01-17 08:05:00
回答 2查看 22.2K关注 0票数 23

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

代码语言:javascript
复制
if (substr($_SERVER['SERVER_NAME'], 0, 4) === 'www.')
{
    header('Location: http://' . substr($_SERVER['SERVER_NAME'], 4)); exit();
}

但是,我确实希望像这样维护请求的URL,例如:

代码语言:javascript
复制
http://www.stackoverflow.com/questions/tagged/php?foo=bar

应重定向至:

代码语言:javascript
复制
http://stackoverflow.com/questions/tagged/php?foo=bar

我不想依赖.htaccess解决方案,我也不确定必须使用哪些$_SERVER变量才能实现这一点。此外,保留HTTPS协议将是一个加分。

我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2010-01-17 08:08:45

试试这个:

代码语言:javascript
复制
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;
}
票数 45
EN

Stack Overflow用户

发布于 2015-08-19 13:27:25

如果(isset($_SERVER‘’HTTP_X_FORWARDED_PROTO‘)&strtolower($_SERVER’‘HTTP_X_FORWARDED_PROTO’) == 'https') || (isset($_SERVER"HTTPS") && strtolower($_SERVER“HTTPS”)==“on”){

*$https= 1;

}否则{

* $https = 0;

}

if (substr($_SERVER‘’HTTP_HOST‘,0,4) !==’www..‘){

在这里我们可以看到它的标题(‘location:’,($https?'https://':'http://') .‘www..’。*$_SERVER‘’REQUEST_URI‘);

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2079457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档