Nginx:将https://重写为http://
我正在尝试让Nginx将传入的请求重写为我的服务器,前缀为https://到http://(这是因为此站点上使用的CMS强制URI而不是相对路径 – 基本上打破了整个站点通过使图像,脚本和样式表不可用). 我目前正在尝试改进前任制定的现有指令,但我发现自己受限于我对Nginx配置语法的了解.这是代码:
我当前评论了这段代码,以防止强制重写http://到https://,但我不能在不破坏网站的情况下撤销该过程.这是我到目前为止所尝试的内容:
和
第一个似乎没有效果.发送到客户端的HTML仍会生成未被重写的HTTPS请求. 第二个片段似乎也没有任何效果 – 如果我理解正确(尽管我仍然有些惊讶),Nginx不支持布尔否定. 这样做的最佳方式(或工作方式)是什么? 编辑:我已经尝试添加来自@ NathanC的答案的代码;但是,这种无条件重写会导致重定向循环.仍然感谢帮助. 最佳答案
更干净的方式是:
或者在那个和Nathans之间的某个地方回答,你的默认ssl服务器块只包含返回301(无论哪个ssl块,你都要仔细看看你的,看看它是如何实现和适应的)没有必要做正则表达式用于简单的重定向 返回 – http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return 编辑:我刚刚注意到有一个变量$https可以在if语句中使用.如果不是https,则返回“”:
请记住,在测试更改时,您应该使用302临时重定向而不是301永久重定向,以便在您发现提前一小时修复它时保存拔毛,但更改未反映在您的浏览器中:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 当我的代理应用服务器关闭时,如何让Nginx返回HTTP 503?
- nginx提供静态文件并更改路由/路径
- 可以在nginx的上游块中使用“include”指令吗?
- url-rewriting – 如何在nginx中更改$request_uri?
- nginx – 代理时如何转发HTTP端口的值?
- nginx – proxy_pass不使用/ etc/hosts解析DNS
- php – 如何在nginx中正确配置alias指令?
- apache – Magento:Lighttpd vs Nginx
- ruby-on-rails – 如何在用户未登录时屏蔽我的目标网页?
- 自动将docker容器附加到nginx负载均衡器的上游配置