我想重定向我所有的http
流量重定向到https
。我正在使用letsencrypt
。我在网上看到return 301 https://$server_name$request_uri;
将重定向到我的网站的所有流量到https
,但它的结果是ERR_TOO_MANY_REDIRECTS
。
如果没有上面提到的语句,一切都可以正常工作,但是我必须在URL中特别指定https
。
server {
listen 80 default_server;
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/mywebsite.me/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mywebsite.me/privkey.pem;
root /home/website/mywebsite/public;
index index.html index.htm index.php;
server_name mywebsite.me www.mywebsite.me;
return 301 https://$server_name$request_uri;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
}
我哪里做错了?
4条答案
按热度按时间bfhwhh0e1#
在我的情况下,它是Cloudflare。我不得不更改为完全SSL加密
eqfvzcg82#
将您的配置更改为以下
你当前的配置在http和https上都重定向到https。所以它变成了一个无限循环,因为return语句。你只想在连接是http时使用return语句。所以你把它分成两个服务器块
exdqitrt3#
我有同样的问题。我发现了很多问题/答案和文章,但没有帮助。然后我试图从不同的浏览器访问我的网站,它工作得很好!从我的Chrome浏览器删除该高速缓存解决了它。
因此,当您尝试不同的解决方案来清除缓存时,请记住
vh0rcniy4#
除了@ZyQux:在Cloudflare上有域,它重定向到另一个VPS提供商,其中Certbot。有循环重定向。为了修复它,我不得不在域的DNS管理中关闭代理(到“DNS only”):
因此,感谢@OritK,因为在Cloudflare上修复后,即使是匿名的Chrome也会在我的网站上显示错误。所以,是的,在FireFox上检查一下