在目标中使用 RedirectMatch 和 HTTP_HOST

2024-02-26

我一直读到,在可能的情况下,我不应该使用mod_rewrite。因此,我正在尝试使用 RedirectMatch 进行 http 到 https 重写。

问题:我该如何使用RedirectMatch并使用 Apache 服务器变量(例如%{HTTP_HOST}) 在 URL 参数中?

此代码无法向客户端(Chrome)返回响应:

RedirectMatch ^(.*) https://%{HTTP_HOST}/$1

我最近问了一个与此类似的问题,但它可能太罗嗦并且缺乏答案的方向:在 Apache 中不使用 mod_rewrite 将 http 流量重定向到 https https://stackoverflow.com/questions/40263713/redirecting-http-traffic-to-https-in-apache-without-using-mod-rewrite


如果您使用的是 2.4.19 或更高版本,Redirect指示 https://httpd.apache.org/docs/current/mod/mod_alias.html#redirect有一个有点晦涩的功能:把它放在一个Location or LocationMatch将开启表达式语法 https://httpd.apache.org/docs/current/expr.html.

所以你的例子可以写成

<LocationMatch ^(?<PATH>.*)>
    Redirect "https://%{HTTP_HOST}%{env:MATCH_PATH}"
</LocationMatch>

(这里,?<PATH>表示法意味着匹配捕获将保存到名称为的环境变量中MATCH_PATH。这就是我们稍后可以使用它的方式Redirect.)

如果您始终使用整个请求路径进行重定向,那就更容易了,因为您可以将捕获组完全替换为REQUEST_URI多变的:

<Location "/">
    Redirect "https://%{HTTP_HOST}%{REQUEST_URI}"
</Location>

现在,对于这种情况,这比仅使用 mod_rewrite 更容易维护/理解吗?也许不会。但这是一个选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在目标中使用 RedirectMatch 和 HTTP_HOST 的相关文章

  • 在同一台服务器上运行两个 PHP 版本

    我在本地服务器上有两个项目 一个项目运行PHP5 6 另一个项目运行PHP7 0 现在可以根据项目启用这两个版本吗 我已经尝试添加AddHandler application x httpd php7 php在 htaccess 项目之一中
  • 如何使用 Apache HttpClient 4 获取文件上传的进度条?

    我有以下用于使用 Apache 的 HTTP Client org apache http client 上传文件的代码 public static void main String args throws Exception String
  • 如何为codeigniter项目完美设置虚拟主机?

    我正在尝试为 codeigniter 项目制作虚拟主机 我已经在 httpd vhosts conf 中完成了此操作
  • Amazon EC2 - Apache 服务器重启问题

    当我运行这个命令时 sudo etc init d httpd restart 它给出以下错误 停止 httpd 失败 启动 httpd 98 地址已在使用中 make sock 无法绑定到地址 80 98 地址已在使用 make sock
  • 如何将现场 prestashop 站点移至本地主机?

    我在将 PS 1 7 从服务器域传输到本地主机时遇到问题 我已按照 Prestashop 文档中的文件传输的所有步骤进行操作 我执行此步骤 1 将所有 prestashop 文件从服务器下载到我的 mac 并将其放入 mamp htdocs
  • 使用 Nginx 或 Apache 来提供动态内容? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • openNLP 与 Solr 集成时出现异常

    我正在尝试将 openNLP 与 Solr 6 1 0 集成 我配置了架构和 solrconfig 文件 详细信息请参见 wiki 链接 https wiki apache org solr OpenNLP https wiki apach
  • 配置 shiro.ini 以进行 JDBC 连接

    作为我新的一年学习新技术计划的一部分 我开始尝试使用 Apache Shiro 安全框架 我设法让基本示例正常工作 该示例将用户名 密码和角色存储在 shiro ini 文件中 但是当我修改 shiro ini 文件以使用 JDBC 时 它
  • htaccess - XAMPP 上的互联网服务器错误 500 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我尝试在 XAMPP 上运行脚本 但收到 互联网服务器错误 500 在实时服务器上运行时效果很好 我认为这是一个 htaccess 错误 htacce
  • 将应用程序级别用户名/用户 ID 注入 nginx/Apache 日志

    有没有办法将应用程序级别的用户名或 id 在本例中为 django 用户名或 id 注入 Apache 或 ngnix 日志中 请注意 我不是询问 HTTP 身份验证用户名 我目前正在使用一个简短的自定义中间件将此数据添加到响应标头 如下所
  • Ubuntu 16.04 - Apache 2.4.18 - 请求 URI 太长

    我试图从 Google 图片搜索结果中保存图像 但是当我在查询字符串参数中发送图像的 src 时 会出现以下错误 Request URI Too Long The requested URL s length exceeds the cap
  • PHP和.htaccess认证解决方案

    这是布局 web root admin dir index php js img other files dirs dir files 到目前为止 我使用 htaccess passwd 保护管理目录 因为我希望对该目录中的所有文件 包括
  • 仅当环境变量具有特定值时如何设置 Apache 标头

    我想在我的 Apache 2 4 配置中设置标头 但前提是环境变量具有特定值 SetEnv ENV NAME prod 我如何仅在以下情况下设置此标头ENV NAME is not prod Header set X Robots Tag
  • proc_open() 失败并显示“权限被拒绝”

    我正在尝试使用proc open 执行程序并打印结果 但是 我不断收到 许可被拒绝 的消息 已将脚本和可执行文件的 chmod 设置为 0777 但无济于事 ini get safe mode 是假的 可能出什么问题了 我正在使用 Cent
  • 使用 Apache 允许 Glassfish 和 PHP 在同一服务器中协同工作

    是否可以建立从 Java 到 php 文件的桥梁 我有一个用 Java 编写的应用程序 我需要执行http piwik org http piwik org 这是用 PHP 编写的 在服务器中 我正在运行 PHP 但无法从浏览器访问 php
  • 间歇性 PHP 抽象类错误

    我已经为此奋斗了一段时间 但无法弄清楚 也许其他人也有 或者 Slim PHP Apache 等这里有更深层次的问题 在正常工作几个小时后 我的 Slim 安装将开始给出所有路线均如此 致命错误 类 Slim Collection 包含 1
  • 使用 Java 的 Apache Http 摘要身份验证

    我目前正在开发一个 Java 项目 但无法使 http 摘要身份验证正常工作 我尝试使用 Apache 网站 但没有帮助 我有一个需要 HTTP 摘要身份验证的网站 DefaultHttpClient httpclient new Defa
  • AH10411 错误:在 apache mod_rewrite 中管理空格和 %20

    我今天更新了 Apache 到 2 4 56 1 并且加载了 htaccess过去有效的重写现在出现了 AH10411 错误 与查询中的空格有关 我正在努力寻找 适当 的解决方案 用户单击一个链接 例如 a href FISH 20J123
  • Apache 网络服务器启动时出现错误[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我刚刚切换
  • 如何在MAMP中设置环境变量?

    如何在 MAMP 版本 3 3 中设置环境变量 我可以在我的 PHP 应用程序中使用它 我已经更新了 Applications MAMP Library bin envvars and envvars std file并添加以下行 Lice

随机推荐

  • jQuery.Deferred 异常:$(...).datepicker 不是函数

    提前致谢 我已经搜索并实施了 document ready function ui datepicker datepicker and function if Modernizr inputtypes date input type dat
  • 如何在Netty中使用多个ServerBootstrap对象

    我正在尝试使用 Netty 4 0 24 在一个应用程序 一个主要方法 中创建多个服务器 多个 ServerBootstrap 我看到了这个问题 答案 但它留下了许多未解答的问题 Netty 4 0多端口 每个端口有不同的协议 https
  • 如何在ejb 3.0中实现缓存?

    我有一位客户陷入 EJB 3 0 环境中 没有 Singleton 没有bean管理的并发 考虑到ejb规范禁止线程管理和同步 如何实现缓存 本质上 我想要一个非同步对象缓存来执行一些昂贵的操作 EJB 3 0 规范第 21 1 2 章中规
  • 使用 Angular 14 在运行时动态导入模块

    我试图在 Angular 14 中动态导入模块 其中模块路径是在运行时设置的 但出现以下错误 Error Cannot find module src app plugin1 plugin1 module Github 重现 https g
  • 字符指针和整数指针 (++)

    我有两个指点 char str1 int str2 如果我查看两个指针的大小 我们假设 str1 4 bytes str2 4 bytes str1 将增加 1 个字节 但如果 str2 将增加 4 个字节 这背后的理念是什么 很简单 在提
  • System.Drawing.Bitmap 和 System.Windows.Media.Imaging.WriteableBitmap 之间的区别

    2者有什么区别 一些例子会很棒 没有System Drawing Bitmap在银光中 如果您要求在 NET 框架和WritableBitmap在 Silverlight 中 差异是巨大的 这WritableBitmap是位图的简单表示 具
  • Swift Codable:如何将顶级数据编码到嵌套容器中

    我的应用程序使用返回 JSON 的服务器 如下所示 result OK data Common to all URLs user name John Smith ETC Different for each URL data for thi
  • 通过 java 发送电子邮件超出每日发送配额

    我有一个java应用程序通过我的gmail帐户发送电子邮件 今天突然发现这个例外 我猜是我的 Gmail 被屏蔽了 那么解决这个问题的办法是什么呢 com sun mail smtp SMTPSendFailedException 550
  • 是否可以在 Windows 中从 PHP 5 启用 VT100/ANSI 转义码

    我正在将旧的 PHP 5 应用程序升级到 PHP 7 我使用 Codeception 进行单元测试 因为它具有漂亮的颜色输出 可以轻松查看所有测试是否已通过 我尝试过的事情 升级到 PHP 7 应用程序崩溃 在没有特殊标志的情况下运行 Co
  • 为什么 Node.js 没有捕获我的错误?

    var api friends helper require helper js try api friends helper do stuff function result console log success catch err c
  • 无法在 MinGW shell 中复制/粘贴

    我刚刚在 Windows 上安装了 MinGW 但无法像在 Linux 甚至 PuTTY 上那样进行复制 粘贴 将文本 例如从 chrome 复制并粘贴到 MinGW shell 中的技巧是什么 右键单击命令窗口的标题栏并选择 属性 然后在
  • 如何查找函数的多个定义

    我写了一个 findDialog 来查找搜索的文本 当我给予make命令 它返回 g Wl O1 o findDialog FindDialog o main o moc FindDialog o L usr lib lQtGui lQtC
  • Angular ng-options 按问题跟踪

    我有一个使用 ng options 显示的对象数据集 我将对象 ID 值绑定到使用的值track by 目前 数据值已包含在内 但以逗号显示 例如 scope items ID 2012 Title Chicago ID 2013 Titl
  • date-fns 中的解析函数返回前一天的值

    我正在尝试使用 date fns 库解析日期 但结果是前一天 我怎样才能避免这种情况并获得正确的结果 start 2021 08 16 const parseStart parse start yyyy MM dd new Date out
  • scipy curve_fit 和局部最小值:尽快达到全局最小值

    我手头的问题 我正在使用scipy curve fit拟合一条曲线 https docs scipy org doc scipy reference generated scipy optimize curve fit html https
  • Docker 使用私有注册表拉/推,无需前缀

    我们正在使用 Nexus3 docker groups 结合 dockerhub 代理和私有注册表 又名 docker pull dockerproxy 5002 busybox 如果私有注册表中不存在 则尝试从 dockerhub 中提取
  • 证书验证失败:验证证书时客户端证书验证失败

    我正在尝试获得相互客户端认证以在 Azure 中工作 我正在使用以下配置运行一个网络应用程序 public class Startup public Startup IConfiguration configuration Configur
  • 有没有在 Xcode 中进行块注释的快捷方式?

    我正在编写 ANSI 兼容的 C 代码 因此我不能使用行 评论 我正在使用 Xcode 在 Sublime Text 和 Eclipse 以及我认为大多数其他 IDE 中 行注释和块注释都有单独的键盘快捷键 然而 我在 Xcode 中没有看
  • Oracle SQL Developer 如何默认其他用户表?

    为了查看我们公司数据库中的所有表 我必须找到主系统帐户 有没有办法默认我的连接 以便它显示其他用户表 您的连接帐户至少具有 SELECT 权限的任何表都将显示在导航树的 其他用户 节点中 如果该表没有显示在那里 那么这是数据库权限问题 而不
  • 在目标中使用 RedirectMatch 和 HTTP_HOST

    我一直读到 在可能的情况下 我不应该使用mod rewrite 因此 我正在尝试使用 RedirectMatch 进行 http 到 https 重写 问题 我该如何使用RedirectMatch并使用 Apache 服务器变量 例如 HT