当前位置: 首页 > 知识库问答 >
问题:

将 HTTP 重定向到不带服务器名称的默认虚拟主机上的 HTTPS

汝飞
2023-03-14

在我的apache服务器上,我希望能够将所有传入的http请求重定向到等效的https请求。问题是,我希望能够在不指定ServerName的情况下为我的默认虚拟主机执行此操作,并使用请求url中出现的任何服务器名称进行重定向。我希望得到这样的东西:

NameVirtualHost *:80
<VirtualHost *:80>
    RedirectPermanent / https://%{SERVER_NAME}/
    ...
</VirtualHost>

这是可以使用重定向还是我必须求助于重写

共有3个答案

高鸿振
2023-03-14

这也是省略不需要的重定向的完整方法;)

这些规则旨在用于。htaccess文件作为*:80虚拟主机条目中的重写器不需要任何条件。

RewriteEngine on
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]

电子地图:

RewriteEngine on

==

RewriteCond %{HTTPS} off [OR]

==

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

==

RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]

==

寇照
2023-03-14

两者都很好。但是根据Apache文档,您应该避免使用mod_rewrite进行简单的重定向,而是使用重定向。因此,根据他们的说法,你最好做到:

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

<VirtualHost *:443>
    ServerName www.example.com
    # ... SSL configuration goes here
</VirtualHost>

< code>Redirect后面的第一个< code>/是url,第二部分是它应该被重定向到的位置。

您还可以使用它来将 URL 重定向到子域:重定向 /one/ http://one.example.com/

涂承运
2023-03-14

尝试在您的vhost配置中添加此内容:

RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
 类似资料:
  • 我知道这个问题已经被问过很多次了。然而,我似乎无法将其用于我的场景。 我想将所有 http 流量重定向到 https,并将 https 根重定向到登录页面。这是我在 vhost.conf 文件中的虚拟主机。 https根登录重定向工作正常。但是,我无法让超文本传输协议https重定向工作。我尝试了各种建议,如; 根据这里的各种帖子。但是其中一些不起作用,在一些建议中,有评论提到查询字符串不适用于变

  • Chrome版本:67.0.3396.87 Web服务器:Apache 当我击中http://www.assignmenthelpdesk.local,它将重定向到https://www.assignmenthelpdesk.local/ 如何阻止MAMP重定向到https?提前感谢。 /Applications/MAMP/conf/apache/extra/httpd vhosts。详情如下:

  • APP1在端口80上使用Apache2 APP2在端口81上使用IIS App3在端口83上使用Xampp Apache 我已经为每个端口1有了一个域。端口80 2的domain1.com。端口81 3的domain2.com。端口83的domain3.com 所有域都指向服务器,当我在域后面使用(:port)时,它工作得很好,例如。域1:83已经在端口83上打开了Xampp Apache。 每个

  • 本文向大家介绍Tornado服务器中绑定域名、虚拟主机的方法,包括了Tornado服务器中绑定域名、虚拟主机的方法的使用技巧和注意事项,需要的朋友参考一下 Tornado默认是监听IP加端口形式,由于Tornado在国内用的人极少,资料更是鳞毛凤角。下面说说Tornado如何绑定域名。 默认Tornado的hello word是这么来的 运行后,使用浏览器访问IP+8888端口 如果你想支持域名访

  • 我正在尝试从我的Spring启动应用程序中公开自定义指标。我正在使用千分尺和普罗米修斯注册表来做到这一点。我已经设置了普罗米修斯注册和配置根据 - 千分尺样本 - Github,但它创建了一个HTTP服务器来公开普罗米修斯指标。我需要将所有指标重定向或公开到Spring boot的默认上下文路径 - ,而不是新端口上的新上下文路径。到目前为止,我已经实现了以下代码 - PrometheusRegi

  • 我需要配置我的Tomcat 9服务器,将http重定向到https流量。 我尝试过: > < li> 对http端口使用连接器,并具有指向安全连接器的redirectPort属性。 在web.xml底部包括一个安全约束链接,它适用于其他不使用虚拟主机的Tomcat服务器 连接器 安全约束 服务器中的主机配置.xml < Li > https://example 2 . com-Works < Li