产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] 301重定向循环

roychan
铁牌会员
72.30 价值分

roychan 发表于 2014-04-29 16:44:20
目的:带www的域名跳转到主域名(不带www)
以前用没问题,但以前的规则是不带www的跳转到带www的,现在反过来,加上rewrite规则如下:

if ( $host != 'www.roychan.org' )
{
rewrite ^/(.*)$ http://roychan.org/$1 permanent;
}

location …………(省略)

此时如果访问www则会跳转到主域名,但浏览器显示此网页包含重定向循环……
请问哪里有问题 如何解决?
@A大
谢谢
评价: 这个问题有价值吗?  没有 (0分)   有, 感谢 (0分)
2014-04-29 16:44:20 1

l12ab
金牌会员
7345.06 价值分

你自己看一下这逻辑,当然是死循环啊
如果 host 不等于 www.roychan.org , 跳转到roychan.org
roychan.org 不等于 www.roychan.org, 跳转到roychan.org
roychan.org 不等于 www.roychan.org, 跳转到roychan.org
roychan.org 不等于 www.roychan.org, 跳转到roychan.org
roychan.org 不等于 www.roychan.org, 跳转到roychan.org
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-04-29 20:25:18 2

roychan
铁牌会员
72.30 价值分

引用:
l12ab 发表于 2014-4-29 20:25
你自己看一下这逻辑,当然是死循环啊
如果 host 不等于 www.roychan.org , 跳转到roychan.org
roychan.org ...


我也发现了 但现在想把不带www的跳到带www的 我这么写

if ($host != 'www.roychan.org') {
rewrite ^/(.*)$ http://www.roychan.org/$1 permanent;
}

location / {
index index.html index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}

可是依旧跳到不带www的 是什么原因呢?感谢!
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-04-29 21:51:40 3

l12ab
金牌会员
7345.06 价值分

你这段代码写在rewrite里,还是vhost里的?
程序本身是不是设置了跳转?
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-04-29 22:37:19 4

roychan
铁牌会员
72.30 价值分

引用:
l12ab 发表于 2014-4-29 22:37
你这段代码写在rewrite里,还是vhost里的?
程序本身是不是设置了跳转?


rewrite 并且已经加到主机上了 程序没装依旧这样 你可以看下我的网站吗 谢谢!
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-04-29 22:43:07 5

amysql
创始人
99532.51 价值分

@l12ab 是正确的。
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-05-01 13:40:52 6

AMH面板 - 好用高效低占用、安全可靠极稳定

 1  (总1页)
AMH社区列表
用户服务中心