我似乎找不到这个问题的答案。我已经彻底搜索过了。我在本地设置了WAMP,要访问它,我键入URL,如下所示:
my-site/
然后,当我将文件推送到Heroku时,我访问该站点,如下所示:
my-site.herokuapp.com
我需要在Heroku中强制页面加载到https上。这个htaccess在Heroku上运行得很好,但是破坏了我本地的WAMP环境。
我一直在尝试设置两个重写条件,并将它们链接在一起,以便htaccess仅适用于Heroku,并在本地被忽略。这是我的htaccess的样子:
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,例如:
RewriteCond %{QUERY_STRING} heroku
或
RewriteCond %{REQUEST_URI} heroku
但我可能误解了这些是如何使用的。我只是尝试匹配两个条件,但老实说,如果我可以用其中一个条件来匹配,那也是很好的。如果我可以在URL中包含heroku的任何时候简单地强制HTTPS,那也是可行的。
提前谢谢。
编辑:当我在本地加载站点时,我会得到
This site can’t be reached my-site refused to connect.
Try:Checking the connection
Checking the proxy and the firewall
ERR_CONNECTION_REFUSED
发布于 2019-05-22 03:17:40
RewriteCond %{HTTP_HOST} ^herokuapp$
在a regex中,^
表示“字符串的开头”,$
表示“字符串的结尾”。
因此,您的规则仅适用于HTTP_HOST
为 herokuapp
的情况。my-site.herokuapp.com
永远不会与此规则匹配。
RewriteCond %{HTTP_HOST} \.herokuapp\.com$
将规则应用于以.herokuapp.com
结尾的主机名。
https://stackoverflow.com/questions/56243942
复制相似问题