如何在 NginX 中将 www.example.com 重定向到 example.com?
Posted
技术标签:
【中文标题】如何在 NginX 中将 www.example.com 重定向到 example.com?【英文标题】:How to redirect www.example.com to example.com in NginX? 【发布时间】:2017-09-24 18:17:01 【问题描述】:当我们打开example.com
(不带HTTPS)时,网站加载得很好,但是当我们打开www.example.com
(不带HTTPS)时,它会打开“欢迎使用nginx”,但我不需要这个,我们想打开@987654323 @即使网址是www.example.com
。
注意:我们的网站有“HTTPS”,当我们打开example.com
时,它会被重定向到https://example.com
。
注意:当我们打开 https://www.example.com
时,网站加载良好,但当 URL 为 www.example.com
或 https://www.example.com
时,它没有被重定向。
我们在 AWS 使用 Ubuntu。
【问题讨论】:
【参考方案1】:您是否为每个选项定义了单独的服务器? 请参阅下面的示例 sn-p。 您的问题看起来与this question 和this question 非常相似,它们都有更多信息,我不会在这里复制粘贴。
此链接也可能有帮助 creating-nginx-rewrite-rules
server
listen 80;
listen 443 ssl;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
server
listen 80;
server_name example.com;
# here goes the rest of your config file
# example
location /
rewrite ^/cp/login?$ /cp/login.php last;
# etc etc...
$scheme
是协议(HTTP 或 HTTPS),$request_uri
是包含参数的完整 URI。
【讨论】:
【参考方案2】:为此,我建议编辑您的 nginx 配置文件(通常在 /etc/nginx/sites-enabled/you-example-config 中),添加返回 301,如 here 所示,类似于:
server
listen 80;
listen 443;
server_name www.example.com example.com;
return 301 https://example.com$request_uri;
#[...ssl settings go here, certs etc....]
server
listen 443;
server_name example.com;
# [...ssl and main settings go here...]
这将导致所有请求返回https://example.com
【讨论】:
以上是关于如何在 NginX 中将 www.example.com 重定向到 example.com?的主要内容,如果未能解决你的问题,请参考以下文章
我如何在 nginx Web 服务器的重写规则中将大写字母转换为小写字母?
如何同时在 Nginx 和 Apache 上托管网站(部分网站)
nginx 强制 https 适用于 www.example.com 但不适用于 example.com