【问题标题】:.htaccess set Status code 451.htaccess 设置状态码 451
【发布时间】:2013-11-22 05:56:37
【问题描述】:

我想通过 .htacces 指令设置 HTTP 返回码。 所以我想知道这是否可能,正如 mod_headers 所期望的那样:名称“值”。

如果不是仅使用 .htaccess 发送“HTTP/1.1 451 重定向”的好方法是什么?

我想在没有服务器端脚本的主机上重定向 ActiveSync。所以我只有 .htaccess 和静态文件。

谢谢!

【问题讨论】:

  • “所以我想知道这是否可能,正如 mod_headers 所说的那样:名称“值”。” – 你是在谈论Header 指令的描述吗? ?如果是这样,它会在那里显示[value],而不是value。从什么时候开始 451 重定向?维基百科将其列为451 Unavailable For Legal Reasons (Internet draft)
  • 阅读下面的一行。它说 451 重定向(微软)。我认为它是专有的,因此 apache 不明白这一点。我需要设置状态码“HTTP/1.1 451 Redirect”。我相信它是 [value],因为它对于某些指令是可选的。
  • 嗯,好的。那么,真正的问题是什么?
  • 不知道怎么设置响应码为451。
  • 你把它放到Header 指令中,它在描述中写着header

标签: apache .htaccess activesync


【解决方案1】:

RewriteRule 可以在 [R=xxx] 标志中使用非 3xx 代码。它应该非常接近。

【讨论】:

  • 我尝试使用 R=451,但是 apache2 说:RewriteRule: invalid HTTP response code '451' for flag 'R'。你在哪里发现它说你可以使用非 3xx 代码?也许这是我的 apache 中的一个错误?
  • @JavaJens 可能是。您使用的是什么版本的 Apache?
  • @Kubo2 这是两年前的事了;)我解决了这个问题,不记得了。不过谢谢!
【解决方案2】:

那么哪个动作最有意义?您想发送一个状态标头,其中两个或附加到现有的标头没有意义,因此您想使用set

值当然是451。如果您愿意,您可以在其后面添加任何文本,但 HTTP 中的状态代码文本描述对于人类可读性而言是纯粹的“糖”,任何客户端都必须忽略除数字代码之外的任何其他内容。

【讨论】:

    【解决方案3】:

    一旦我需要在.htaccess 文件中设置整个域的 HTTP 响应状态代码:

    RewriteRule ^ - [R=410,L]
    

    所以这种方式现在适用于我在 Apache 2.4 上

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多