【发布时间】:2022-01-02 07:08:06
【问题描述】:
我正在尝试使用 .htaccess 将 HTTP 标头响应代码覆盖为另一个响应代码。
我想改变
HTTP
404到200 OKHTTP
403到200 OK
.ht 访问代码:
RewriteEngine On
#ErrorDocument
ErrorDocument 403 /forbidden.html
ErrorDocument 404 /notfound.html
ErrorDocument 500 /servererror.html
# Disable directory browsing
Options -Indexes
#Change status code to 200 OK
<IfModule mod_headers.c>
<If "%{REQUEST_STATUS} in { '404','403', '500' }">
Header set HTTP/1.1 "200 OK"
Header set HTTP/2 "200 OK"
</If>
</IfModule>
轻松使用 PHP:header("Status: 200 OK");
但我想使用 .htaccess 来做到这一点。知道如何覆盖 HTTP 响应代码
注意:我不是在寻找重定向。
【问题讨论】:
-
@MrWhite 因为我的团队领导和客户要求它:(。你能帮我解决如何用 htaccess 覆盖 HTTP 响应代码吗?
-
@MrWhite 我的客户希望用 htaccess 覆盖响应代码。你能帮我用覆盖响应代码的htaccess代码吗:)
-
正如我所说,这取决于如何设置响应代码......如果应用程序(例如 PHP)正在设置 404/403 响应,那么您不能简单地覆盖响应代码使用
.htaccess。所以,就目前而言,你的问题是不完整的......首先如何设置 404/403 响应? -
"如果有人访问了一个不存在的链接" - 该链接通常会映射到静态文件?不是通过 WordPress 等 CMS 吗?并且您仍想返回“未找到”页面但返回 200 OK 响应?
-
@shanmugapradeep 你已经问过两次完全相同的问题了!我已将最近的问题标记为此问题的副本,该问题未关闭。
标签: apache .htaccess mod-rewrite http-status-code-404 http-status-code-403