.htaccess - 仅在本地主机上将 HTTPS 重定向到 HTTP

标签 .htaccess http ssl https localhost

我在一个包含 https 链接的本地网站上工作,所以当我点击其中一个链接时,它会将我带到 https://localhost/...,但它不存在因为没有安装 SSL 证书。

有什么我可以添加到 .htaccess 的东西来检查我是否在本地主机上,如果是,则将 https 重定向到 http? .htaccess 文件用于我们服务器上的本地开发和生产,因此我添加的任何内容都不能影响实时网站。

最佳答案

没有。

原因是您在 htaccess 文件中放置的任何规则都只会在发出请求后应用,这意味着它只会在 https://localhost/ 发出请求。如果没有任何内容在本地主机上监听 HTTPS 端口 (443),则永远不会应用规则。

如果端口 443 正在 监听本地主机上的请求,但这只是缺少 SSL 证书的问题,规则仍然不会应用,直到 执行 SSL 握手,这意味着您仍然会收到有关证书的安全警告。

也就是说,如果您让 apache 监听端口 443 并安装了证书,您想要的规则是:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^localhost$ [NC]
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R]

关于.htaccess - 仅在本地主机上将 HTTPS 重定向到 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22975214/

相关文章:

http - 如何将 "tail"原始 HTTP 请求发送到 Web 应用程序?

apache - HTTPS 重定向无效

ssl - 瓦坎达和 SSL : Server Name and how to gracefully handle HTTP requests?

php - 为单个域强制使用 https(复杂的实现)

.htaccess - htaccess 内部服务器错误

php - 使用PHP和htaccess处理错误页面

http - websocket、http、spdy

http - AngularJS - 在 http 请求后刷新 View ,$rootScope.apply 返回 $digest 已经在进行中

linux - htaccess 阻止来自顶级域的访问?

apache - 301重定向文件夹根目录