【问题标题】:HTTP to HTTPS redirect withouth specifying hostname?HTTP 到 HTTPS 重定向而不指定主机名?
【发布时间】:2015-01-21 17:17:40
【问题描述】:

我希望在 apache 中将任何 Web 请求重定向到 HTTP 到 HTTPS,并且我已经将一个可行的解决方案添加到我的 httpd.conf 文件中:

<VirtualHost *:80>
        ServerName myhostname.com
        Redirect / https://myhostname.com/
</VirtualHost>

然而,这个解决方案依赖于主机名,我想知道是否有一个独立于主机名的方法。 我尝试使用${HOST_NAME},但它不起作用我猜这个变量需要事先设置。

【问题讨论】:

  • 上述方法你试过了吗?它在 VirtualHost 容器之外,因此它应该对所有请求都是通用的。

标签: apache httpd.conf http-redirect


【解决方案1】:
<VirtualHost *:80>
        ServerName myhostname.com
</VirtualHost>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

这个重定向你的整个网站,意味着每个http请求都会被重定向,这是你想要的吗?

【讨论】:

  • 在这种情况下我仍然需要使用ServerName myhostname.com 我想知道是否有一种方法可以告诉它将所有HTTP重定向到HTTPS而无需指定我的“myhostname.com "
  • 上述方法你试过了吗?它在 VirtualHost 容器之外,因此它应该对所有请求都是通用的。
  • 非常感谢!所以让我们看看我理解发生了什么:如果请求是否为“HTTPS”的条件关闭,则使用 https 重写请求。 . 这是正确的吗?
  • RewriteRule 之后 (.*) 做了什么?
  • (.*) 不是在之后,而是在... 规则阅读之前: RewriteRule REQUEST REWRITE-TO ,星号只是表示将整个请求按原样重写为定义的规则
猜你喜欢
  • 2018-10-12
  • 2016-07-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 2017-06-08
  • 2014-05-23
  • 2013-04-09
相关资源
最近更新 更多