700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > nginx配置完rewrite浏览器提示将您重定向的次数过多

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

时间:2023-12-25 18:21:14

相关推荐

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

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

为什么要给nginx配置rewrite?

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

错误原因

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

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

server {listen 80;server_name ;#charset koi8-r;#access_log logs/host.access.log main;root "/data/wwwroot/shidong";location / {rewrite ^/(.*) /$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 做正确的修改,删除这个要重写的域名。

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

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

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

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

示例代码如下:

server {listen 80;server_name ;#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 ^/(.*) /$1 permanent;try_files $uri $uri/ /index.php?$query_string;autoindex off;}省略多余的部分.....只需要看rewrite跟service_name即可}server {listen 80;server_name ;#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服务器

/etc/init.d/nginx restart

[root@iZm5e8nyz28v9zr7lhb7moZ ~]# /etc/init.d/nginx restartnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfulStopping nginx: [ OK ]Starting nginx: [ OK ][root@iZm5e8nyz28v9zr7lhb7moZ ~]#

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。