nginx配置完rewrite浏览器提示将您重定向的次数过多的解决方法

 更新时间:2023年07月10日 11:31:52   作者:@Winner  
本文主要介绍了nginx配置完rewrite浏览器提示将您重定向的次数过多的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

为什么要给nginx配置rewrite?

因为公司要求访问 shidongyun.com的时候浏览器会自动跳转到www.shidong.com下面,专业术语叫“301跳转”百度了一番,nginx配置规则,用rewrite还有return进行重写301跳转。我这里用的是rewrite。

错误原因

在配置网站站点的时候service里面的service_name 规则不正确。错误配置规则如下:

只看service这部分错误的即可。service_name 不能把rewrite即将要重写的域名写进去,这样就造成了死循环了。比如:我要访问"shidongyun.com",利用rewrite在浏览器输入“shidongyun.com”的时候,重写到www.shidongyun.com下面。那么在service_name就不能写www.shidongyun.com这个域名。可以单独写一个service,也可以不用写。直接这样写:rewrite ^/(.*) http://www.shidongyun.com/$1 permanent;。

server {
    listen       80;
    server_name www.shidongyun.com shidongyun.com;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    root    "/data/wwwroot/shidong";
    location / {
        rewrite ^/(.*) http://www.shidongyun.com/$1 permanent;
        index  index.html index.htm index.php l.php;
        try_files $uri $uri/ /index.php?$query_string;
       autoindex  off;
    }

解决方案

1,把service下面的service_name 做正确的修改,删除www.shidongyun.com这个要重写的域名。

server {
    listen       80;
    server_name shidongyun.com;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    root    "/data/wwwroot/shidong";
    location / {
        rewrite ^/(.*) http://www.shidongyun.com/$1 permanent;
        index  index.html index.htm index.php l.php;
        try_files $uri $uri/ /index.php?$query_string;
       autoindex  off;
    }

在次在浏览器访问:shidongyun.com,我们看到截图中已经成功的重写过去了。但是访问域名的时候默认找的是网站安装时候的目录。并不是项目目录。解决方案如下:

2,需要配置rewrite重定向到指定的目录或者单独配置一个service虚拟机,然后把需要rewrite重定向的service主机跟域名配置好。配置信息如下:

我们先配置一个service虚拟机,要访问的域名,比如“shidongyun.com”,然后在配置一个service虚拟机,把要rewrite重写的域名放进去,比如:“www.shidong.com”,我们达到的效果就是访问“shidongyun.com”浏览器地址会自动跳转到“www.shidongyun,com”下面。

示例代码如下:

server {
    listen       80;
    server_name shidongyun.com;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    root    "/data/wwwroot/shidong";
    location / {
        index  index.html index.htm index.php l.php;
        rewrite ^/(.*) http://www.shidongyun.com/$1 permanent;
        try_files $uri $uri/ /index.php?$query_string;
       autoindex  off;
    }
    省略多余的部分.....只需要看rewrite跟service_name即可
}
server {
    listen       80;
    server_name www.shidongyun.com;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    root    "/data/wwwroot/shidong";
    location / {
        index  index.html index.htm index.php l.php;
        try_files $uri $uri/ /index.php?$query_string;
       autoindex  off;
    }
	省略多余的部分.....只需要看service_name即可。root设置项目路径。
    }

重启nginx服务器

1, /etc/init.d/nginx restart

[root@iZm5e8nyz28v9zr7lhb7moZ ~]# /etc/init.d/nginx restart
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[root@iZm5e8nyz28v9zr7lhb7moZ ~]# 

2,浏览器输入“shidongyun.com”自动跳转到“www.shidongyun.com”下面

到此这篇关于nginx配置完rewrite浏览器提示将您重定向的次数过多的解决方法的文章就介绍到这了,更多相关nginx rewrite重定向内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于Nginx服务器可视化配置问题

    关于Nginx服务器可视化配置问题

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行,这篇文章主要介绍了Nginx服务器可视化配置,需要的朋友可以参考下
    2022-10-10
  • Nginx解决前端访问资源跨域问题的方法详解

    Nginx解决前端访问资源跨域问题的方法详解

    这篇文章主要给大家介绍了关于Nginx解决前端访问资源跨域问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 使用Nginx搭建图片服务器(windows环境下)

    使用Nginx搭建图片服务器(windows环境下)

    这篇文章主要介绍了使用Nginx搭建图片服务器(windows环境下),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • nginx的配置转发到其他网站详解

    nginx的配置转发到其他网站详解

    这篇文章主要为大家介绍了nginx的配置转发到其他网站过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 解决SSE流被Nginx缓存的问题

    解决SSE流被Nginx缓存的问题

    如果你的服务使用了nginx网关,可能会出现nginx缓冲sse流的问题,导致的现象是,客户端调用sse接口时,流数据并不是一条条出现的,而是一口气出现的,本文将给大家介绍如何解决SSE流被Nginx缓存的问题,需要的朋友可以参考下
    2023-10-10
  • nginx外网访问内网站点配置操作

    nginx外网访问内网站点配置操作

    这篇文章主要介绍了nginx外网访问内网站点配置操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Nginx轻松搞定跨域问题完整过程

    Nginx轻松搞定跨域问题完整过程

    这篇文章主要给大家介绍了关于Nginx轻松搞定跨域问题的相关资料,大家在使用nginx进行服务器管理,经常会遇到跨域问题,文中将解决方法介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • Nginx实现三种常见的虚拟主机配置方法

    Nginx实现三种常见的虚拟主机配置方法

    Nginx 是一款高性能的 Web 服务器,支持多种虚拟主机配置方式,能够根据域名、IP 或端口区分不同的站点,这种灵活性让 Nginx 成为搭建多站点服务的首选工具,本文将带你一步步实现三种常见的虚拟主机配置方法,需要的朋友可以参考下
    2025-03-03
  • Linux下安装nginx的实现方法

    Linux下安装nginx的实现方法

    这篇文章主要介绍了Linux下安装nginx的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 详解nginx高并发场景下的优化

    详解nginx高并发场景下的优化

    这篇文章主要介绍了详解nginx高并发场景下的优化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09

最新评论