首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx通配子域名重定向至非www

问Nginx通配子域名重定向至非www
EN

Stack Overflow用户
提问于 2015-12-22 07:34:51
回答 1查看 2K关注 0票数 3

我有一个与通配符子域名设置的白标访问。我正在努力防止人们输入http://www.subdomain.domain.com/,但却很难找到解决方案。(我已经进行了一次重写,以便始终使用安全协议。)

我目前的设置是这样的(好吧,相关的部分):

代码语言:javascript
复制
server {
    listen 80;
    server_name  domain.com *.domain.com;
    rewrite ^ https://$http_host$request_uri? permanent;
}

server {
    listen 443;
    ssl on;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/certificate.key;
    server_name domain.com *.domain.com;

    ...
}

我所实现的是http://domain.com和http://sub.domain.com都重定向到https协议,换句话说,分别是https://domain.com和https://sub.domain.com。我仍然希望在上面实现的是,http://www.domain.com和https://www.domain.com都重定向到https://domain.com,而http://www.sub.domain.com和https://www.sub.domain.com也都重定向到https://sub.domain.com。

有人能帮帮忙吗?

(PS:我甚至考虑应用全局nginx设置来立即删除运行在同一服务器上的所有域的www部分,如果这是一种选择的话。)

EN

回答 1

Stack Overflow用户

发布于 2015-12-22 18:07:01

要从请求的服务器名称中删除前导www.序列,请将此if块放在server容器的顶部附近(在任何其他URI处理指令之前):

代码语言:javascript
复制
if ($http_host ~* ^www\.(.*)$ ) 
{ 
    return 301 $scheme://$1$request_uri;
}

通常是if should be used very carefully,但在这种情况下完全没有问题。

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

https://stackoverflow.com/questions/34406172

复制
相关文章

相似问题

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