nginx 域名跳转 Nginx跳转自动到www域名规则配置,如果设置使 mgcrazy.com域名在用户访问的时候自动跳转到 www.mgcrazy.com呢?在网上找了好多资料都没有一个完整能解决的!以下是我的解决办法!供大家学习和参考!

首先一、得在你的域名管理里面定义 mgcrazy.com和www.mgcrazy.com指向你的主机ip地址,我们可以使用nslookup命令测试:直接输入 nslookup mgcrazy.com和nslookup www.mgcrazy.com 都有指向ip的A记录即可。

第二、我们才能在nginx里面配置rewrite规则。打开 nginx.conf文件
找到你的server配置段:【以下是我的server配置段】
server
{
listen 80;
server_name www.mgcrazy.com mgcrazy.com;
if ($host != ‘www.mgcrazy.com’ ) {
rewrite ^/(.*)$ http://www.mgcrazy.com/$1 permanent;
}
这样就是用户直接访问mgcrazy.com直接跳转的www.mgcrazy.com。即让不带www的域名跳转到带www的域名。

三、我们可以是多个二级域名、三级域名都可以随意跳转、或者让它们都跳转到blog.mgcrazy.com这个域名
同意添加如下语句即可:
server
{
listen 80;
server_name blog.mgcrazy.com wgkgood.gicp.net;
if ($host = ‘wgkgood.gicp.net’ ) {
rewrite ^/(.*)$ http://blog.mgcrazy.com/$1 permanent;
}
让另外一个免费的二级域名wgkgood.gicp.net跳转到我的博客 http://blog.mgcrazy.com 

这样不至于放弃二级域名后,对搜索引擎造成影响。对seo很有帮助。

四、

nginx 多个端口跳转

要配置Nginx以实现多个端口的重定向,你可以在Nginx配置文件中使用多个 server 块来分别监听不同的端口,并使用 rewrite 指令或 return 指令来进行重定向。以下是一个简单的例子,展示如何将端口80和8080的流量重定向到端口443:

# HTTP to HTTPS redirect

server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 8080;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
# HTTPS server
server {
listen 443 ssl;
server_name example.com www.example.com;
# SSL configuration
ssl_certificate /path/to/ssl/certificate.pem;
ssl_certificate_key /path/to/ssl/private.key;
# The rest of your configuration…
}
确保替换 example.com 和 SSL 证书及密钥的路径为你的实际配置。

重载Nginx配置以应用更改:

sudo nginx -s reload
这样配置后,访问端口80和8080的流量将会被301重定向到端口443的HTTPS版本。