【问题标题】:Rewrite rule to return status 200 for certain URLs重写规则以返回某些 URL 的状态 200
【发布时间】:2018-06-16 20:07:42
【问题描述】:

我希望具有特定路径的 URL 返回自动 200 状态响应。我尝试了以下方法,但在尝试启动 Apache 时出现错误:

第一个错误: RewriteCond: bad flag delimiters

RewriteEngine On
RewriteCond %{THE_REQUEST} GET /the_url/
RewriteRule ^ - [R=200]

如果我删除路径部分,则不会出现错误:

RewriteEngine On
RewriteCond %{THE_REQUEST} GET
RewriteRule ^ - [R=200]

但是,当然,我需要一种方法来包含路径要求。

另一个错误是,即使服务器确实返回了上面的状态 200(已在开发者工具中验证),然后页面仍然显示错误消息:“OK The server遇到内部错误或配置错误,无法完成您的请求......”它不是真的返回状态 200 吗?或者是这样,但这正是服务器不提供任何内容时的默认 HTML 页面?

【问题讨论】:

    标签: apache httpd.conf


    【解决方案1】:

    下面的伎俩。来自https://httpd.apache.org/docs/2.4/custom-error.html

    启用 mod_rewrite 模块

    LoadModule rewrite_module modules/mod_rewrite.so
    

    然后将以下内容添加到您的虚拟主机。

    ErrorDocument 200 "ok"
    RewriteEngine On
    RewriteRule "/the_url/" - [R=200]
    

    编辑:

    我的原始答案已被其他人大量编辑,以至于不再完全相同。我将保留编辑后的答案(上图),但我不必启用 mod_rewrite 模块。某些 Linux 发行版默认带有此功能,或者您的主机可能已将其作为默认起点。我将这三行添加到 httpd.conf。

    【讨论】:

      猜你喜欢
      • 2014-11-14
      • 2012-05-03
      • 1970-01-01
      • 2019-03-15
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      相关资源
      最近更新 更多