Apache 标头配置中的“always”和“onsuccess”有什么区别?

2024-04-02

我有一个网站,其中定义了虚拟主机/etc/apache2/sites-enabled/标题设置为always像这样的选项:

Header always set X-Frame-Options DENY

如果我现在使用设置相同的标头.htaccess在网站的根文件夹中,但没有always那么该标头会在服务器的响应中返回两次。

设置在.htaccess(在其他人中):

Header set X-Frame-Options DENY

服务器的响应:

HTTP/1.1 200 OK
Date: Mon, 02 May 2016 16:02:29 GMT
Server: Apache/2.4.10 (Debian)
X-Frame-Options: DENY
Cache-Control: no-cache, no-store, must-revalidate, private
Pragma: no-cache
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Last-Modified: Mon, 02 May 2016 15:03:42 GMT
Accept-Ranges: bytes
Content-Length: 0
X-Frame-Options: DENY
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Cache-Control: no-cache, no-store, must-revalidate, private
Pragma: no-cache
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

Apache 文档说,如果没有always选项的默认值onsuccess用来。但他们也说“... onsuccess 的默认值不会将操作限制为具有 2xx 状态代码的响应...” (http://httpd.apache.org/docs/current/en/mod/mod_headers.html#header http://httpd.apache.org/docs/current/en/mod/mod_headers.html#header).

但如果我不添加always,那么像 301s 和 404s 这样的错误页面将不会设置标头。另一方面,如果我添加always那么如果我使用默认值(即,onsuccess) in .htaccess。正如文档所述:“在某些情况下,在这两个条件下重复此指令是有意义的,因为相对于现有标头,always 不是 onsuccess 的超集”。设置标头两次对于 HTTP 响应并不总是有效,请参阅https://stackoverflow.com/a/4371395/641481 https://stackoverflow.com/a/4371395/641481。所以我自然想避免它。

我现在的问题是:我到底应该什么时候使用onsuccess(即默认值)以及何时always?我必须承认,即使在阅读了 Apache 文档几次之后,我仍然不能完全理解这一点。实际上,似乎总是使用always导致正确/预期的行为。

我也不明白为什么 Apache 会在设置中将标头写入两次always and onsuccess。对我来说这似乎是错误的,但是这肯定有一个很好的理由,因为我认为 Apache 开发人员比我更了解 HTTP ;-)


这只是部分答案,因为它不包括onsuccess属性。它基于在 Ubuntu 14 操作系统上运行 apache 2.4.7 的经验。希望它对您有所帮助。

纯粹的set参数,不带属性,到Header指令覆盖任何always属性通过强制参数Header set成为唯一交付的。如果相同的指令出现在目录中,即基于文件系统的 .htaccess 文件,则它优先于与该目录相关的虚拟主机定义文件中记录的相同指令。如果属性always另外注意到,它的效果是将相同指令的任何相同或不同的符号添加到服务器答案中,而不是覆盖/替换它。

大概是onsuccess不幸的是,我现在没有时间探索该属性,其处理方式可能类似于always属性。

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

Apache 标头配置中的“always”和“onsuccess”有什么区别? 的相关文章

  • 是否有管理 __utma、__utmz 等 cookie 的标准?

    无论我登录 Facebook 还是 Twitter 我都会受到以下名称的 cookie 轰炸 utma utmb utmc utmv 它们的功能是什么 是否有一个标准来管理这些在服务器端的使用方式 这些 cookie 通常与谷歌分析 htt
  • 在 Windows 中启用 Apache 中的 mod_headers

    我正在尝试配置访问控制允许来源在 Apache 中允许某些域 下面是我的httpd配置
  • 有没有类似Wamp Server的东西? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道是否有人知道类似WAMP Server 的程序 包含 PHP MySQL Apache 的多合
  • HTTP 和 HTTPS iframe

    我正在创建一个小部件 我想允许其他人使用它 这iframe通过 HTTP 加载 但我想允许用户通过 HTTPS 登录 即通过 SSL 发送登录请求 同源策略中允许这样做吗 即 场景是用户可以将我的 JavaScript 集成到他们的网站 小
  • .htaccess 仅在 safari 上导致重定向循环 - http 到 https

    这种情况只发生在野生动物园中 我不知道为什么 谷歌浏览器 火狐浏览器 一切正常 在任何苹果产品上 使用 Safari 我都会得到一个重定向循环 Code RewriteCond HTTP HOST example com NC Rewrit
  • Angular JS 在调用新的 $http 之前取消 $http 调用

    在 Angular JS 1 1 5 中 您可以取消之前启动的 http 调用 这两个link1 https stackoverflow com questions 16962232 in angularjs how to stop ong
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • Chrome 在传输一定量的数据后挂起 - 等待可用的套接字

    我有一个浏览器游戏 最近我开始向游戏添加音频 Chrome 无法加载整个页面并卡在 91 requests 8 1 MB transferred 并且不再加载任何内容 它甚至破坏了所有其他选项卡中的网站 说Waiting for avail
  • 外部依赖错误的 HTTP 状态代码

    当服务器与外部 API 通信出现问题时 返回的正确 HTTP 状态代码是什么 假设客户端向我的服务器 A 发送有效请求 然后 A 查询服务器 B 的 API 以便执行某些操作 然而 B 的 API 当前抛出 500 错误或因某种原因无法访问
  • 是否可以修改 $_SESSION 变量?

    恶意用户是否可以将 SESSION 在 php 中 变量设置为他想要的任何值 很大程度上取决于您的代码 有一点非常明显 SESSION username REQUEST username
  • Angular2通用部署到apache远程服务器

    我在将 Web 应用程序部署到 Apache 远程服务器时遇到问题 我已经通过以下步骤部署了一个使用 RESTful API 服务 用 PHP 编写 托管在 public html api 的标准 Angular2 Web 应用程序 在项目
  • Flask/Apache 提交按钮用于文件上传

    我有一个在 apache 后面运行的 Flask 应用程序 在我的 index html 页面上有一个文件上传按钮和一个提交按钮 如下所示
  • 如何在 apache 上为锚点 cms 重写指令

    我使用的是一个名为anchor的cms http anchorcms com docs getting started configuration http anchorcms com docs getting started config
  • 拒绝访问特定目录中的特定文件类型

    对于某些应用程序 用户可以上传自己的文件 由于这可能是非常大的文件 因此他们可以通过自己的 FTP 客户端上传这些文件 当然 我不希望他们上传一些可以访问服务器上所有其他文件的 PHP 文件 我想要防止这种行为的方法之一是拒绝仅访问这些文件
  • Volley 在第一次调用方法时返回 null

    我正在尝试使用 volley 从服务器检索数据 但是当我第一次调用此方法时 我收到服务器的响应 但该方法返回 null 如果我第二次调用它 我会得到最后的响应 public String retrieveDataFromServer Str
  • HTTP代理服务器

    我开始研究一个用 C 编写的非常基本的 HTTP 代理服务器 Edit 只是转发我的请求的东西 此时我很难理解如何继续 任何帮助都会有益的 看一眼micro proxy http acme com software micro proxy
  • .htaccess 异常导致主目录出现问题

    这是我的目录结构 localhost or livehost app bootstrap public vendor code demo 这是我的 htaccess
  • 从 http 页面永久重定向到 https 页面

    当我尝试使用 htaccess 创建从 HTTP 页面重定向到 HTTPS 页面 仅适用于特定页面 的规则时 我收到了循环重定向 我哪里错了 Options FollowSymLinks RewriteEngine On RewriteCo
  • 返回重定向作为对 Ajax(fetch、XHR 等)请求的响应

    如果浏览器收到对 ajax 请求的重定向响应 会发生什么 如果浏览器收到对 ajax 请求的重定向响应 会发生什么 如果服务器发送重定向 又名 302 响应加上 Location 标头 浏览器将自动遵循重定向 对此的回应second请求 假
  • 从 HTTP 登录到 HTTPS

    我的网站默认使用 HTTP 我确实有一个启用 HTTPS 的证书 但只有其上的某些区域强制建立安全连接 登录是通过 Ajax 处理的 我想开始使用 SSL 即使请求来自 HTTP 我尝试强制请求的地址具有 HTTPS 并且它完美地回复 然而

随机推荐