奇怪的问题。我使用FullCalendar向服务器上的endpoint发起ajax请求。终点是:
https://my_website/events/?start=2019-03-31&end=2019-05-12&_=1555698739056
请注意,它是显式的HTTPS。但是,当我发起一个请求时(即当Fullcalendar发起一个请求时),我会得到一个301和一个到非HTTPSendpoint的重定向:
因为页面是通过HTTPS加载的,所以失败。
endpoint工作正常--当我将它加载到浏览器中时,我会得到预期的json输出(通过https)。在此页面上发生的其他ajax请求也能正常工作,我在此站点的其他地方成功地使用Fullcalendar(到另一个endpoint)做了完全相同的事情。这只是一个出人意料的场景。
可能值得注意的是,它位于nginx反向代理/负载均衡器后面的docker容器中;站点配置非常简单:
upstream docker {
server localhost:8701;
server localhost:8702;
}
server {
server_name my_website;
location / {
proxy_pass http://docker;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header HTTP_Country-Code $geoip_country_code;
proxy_pass_request_headers on;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/my_website/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/my_website/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = my_website) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name my_website;
return 404; # managed by Certbot
}
这似乎是因为您没有使用规范URL,而您的后端正在通过这些301
重定向强制执行这样的URL,而实际上它并不知道规范地址方案。
>
最好的解决方案是修复前端代码,使其始终使用规范的URL。例如,在您提供的示例中,APIendpoint中是否存在尾随斜杠是有区别的。
您可能应该将后端配置为正确地知道它是通过https
访问的,例如,在nginx中的所有其他proto_set_header
指令旁边添加如下内容,以终止https并将通信量传递给后端:
proto_set_header X-Forwarded-Proto $scheme;
RewriteCond%{SERVER\u PORT}上的RewriteEngine!443重写规则^(/(.*)?$https://%{HTTP_HOST}/$1[R=301,L] 这是我在. htaccess文件中使用的命令,当我键入arion-software.co.uk它不能正确重定向。任何想法?
我的服务器正在从http重定向到HTTPS。我希望允许使用http和HTTPS访问我的应用程序。我怎么能这么做?在我的Wildfly8.2日志中有这样两行:
隐私设置->清除浏览数据(从时间开始) https/ssl->管理证书->删除所有项(包括证书) 检查没有书签。 Firefox也有类似的问题,但它的解决方案不适用于Chrome。有人对我能做些什么有什么建议吗?提前感谢您的帮助!
我正在使用Firefox,在设置服务器时,我一直在摆弄重定向。现在,Firefox已经缓存了从http://example.com/到https://example.com/和从http://sub.example.com/到https://sub.example.com/的301重定向。 我已经尝试了以下几件事: null 我的Firefox版本是38.0.1,我使用的是Windows8.1。我
问题内容: 我正在一个购物车网站上工作,我想在用户输入帐单明细时将用户重定向到HTTPS页面,并保持下一页的HTTPS连接,直到他注销。 为此,我需要在服务器上安装什么(我正在使用Apache),如何从PHP进行重定向? 问题答案: 尝试这样的事情(应该适用于Apache和IIS):
下面是使用“ProxyPass”和“ProxyPassReverse”的apache反向代理配置片段 当我在wget命令下面运行时,它不知何故重定向到http: 如果我使用“/artifactory/webapp/#/home”运行wget命令,它可以在HTTPS上工作: 我没有在代理配置文件的任何地方定义重定向。 有人能提出这种行为背后的原因吗??如何避免将其重定向到HTTP?