首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Heroku上强制使用https,并匹配本地WAMP环境中的域中断

在Heroku上强制使用https,并匹配本地WAMP环境中的域中断
EN

Stack Overflow用户
提问于 2019-05-22 01:54:28
回答 1查看 34关注 0票数 -1

我似乎找不到这个问题的答案。我已经彻底搜索过了。我在本地设置了WAMP,要访问它,我键入URL,如下所示:

代码语言:javascript
复制
my-site/

然后,当我将文件推送到Heroku时,我访问该站点,如下所示:

代码语言:javascript
复制
my-site.herokuapp.com

我需要在Heroku中强制页面加载到https上。这个htaccess在Heroku上运行得很好,但是破坏了我本地的WAMP环境。

我一直在尝试设置两个重写条件,并将它们链接在一起,以便htaccess仅适用于Heroku,并在本地被忽略。这是我的htaccess的样子:

代码语言:javascript
复制
RewriteEngine On

##Force SSL 
#only if herokuappis found in the url
RewriteCond %{HTTP_HOST} ^herokuapp$

#Heroku way
RewriteCond %{HTTP:X-Forwarded-Proto} !https

#If neither above conditions are met, redirect to https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

我从这里借来了代码。How to redirect to HTTPS with .htaccess on Heroku Cedar stack

并一直试图修改它来为我工作,但无济于事。

我甚至尝试了其他变体来检测URL中的heroku,例如:

代码语言:javascript
复制
RewriteCond %{QUERY_STRING} heroku

代码语言:javascript
复制
RewriteCond %{REQUEST_URI} heroku

但我可能误解了这些是如何使用的。我只是尝试匹配两个条件,但老实说,如果我可以用其中一个条件来匹配,那也是很好的。如果我可以在URL中包含heroku的任何时候简单地强制HTTPS,那也是可行的。

提前谢谢。

编辑:当我在本地加载站点时,我会得到

代码语言:javascript
复制
This site can’t be reached my-site refused to connect.
Try:Checking the connection
Checking the proxy and the firewall
ERR_CONNECTION_REFUSED
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-22 03:17:40

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^herokuapp$

a regex中,^表示“字符串的开头”,$表示“字符串的结尾”。

因此,您的规则仅适用于HTTP_HOSTherokuapp的情况。my-site.herokuapp.com永远不会与此规则匹配。

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} \.herokuapp\.com$

将规则应用于以.herokuapp.com结尾的主机名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56243942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档