![apache2 mod_rewrite 重定向无 http 主体](https://linux22.com/image/719918/apache2%20mod_rewrite%20%E9%87%8D%E5%AE%9A%E5%90%91%E6%97%A0%20http%20%E4%B8%BB%E4%BD%93.png)
答案1
您可以为 301 响应定义自定义 ErrorDocument,在其中设置空响应。(尽管没有明确记录为非错误(即除 4xx 或 5xx 状态以外的任何状态)指定自定义“错误文档”。)
例如:
ErrorDocument 301 /errordocs/empty.html
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Where/errordocs/empty.html
实际上是一个空文档。
或者,你可以ErrorDocument
将细绳。但是您不能设置一个完全为空的字符串,因为 Apache 看不到第二个参数并终止并显示错误:“ErrorDocument 需要两个参数”。但是,您可以将其缩减为一个字符。例如,要-
在响应主体中仅发送连字符 ( ):
ErrorDocument 301 "-"
但是,这确实设置了响应主体全部Apache 301 响应。(但是,如果这是在服务器配置中端口 80 的 VirtualHost 容器中,那么无论如何这都会被限制为仅 HTTP 重定向。)
参考:这是对 StackOverflow 问题的回答更详细地从 Apache 返回空响应。
然而,正如@MichaelHampton 在评论中指出的那样,你是否应该发送重定向时响应主体为空则是另外一回事。
它位于服务器配置(.conf 文件)中
在旁边:如果这是在服务器配置中,那么您应该Redirect
在非 HTTPS(端口 80)VirtualHost 容器中使用简单的 mod_alias,而不是 mod_rewrite。在此上下文中使用 mod_rewrite 来明确检查HTTPS
服务器变量是不必要的。这对返回的错误文档没有影响。