为啥要使用重定向输出内容?

Posted

技术标签:

【中文标题】为啥要使用重定向输出内容?【英文标题】:Why output content with a redirect?为什么要使用重定向输出内容? 【发布时间】:2012-04-12 04:38:55 【问题描述】:

当您配置 Apache 进行重定向时,默认情况下它不仅输出 Location 标头,还输出一些内容,大概是为了不支持 Location 标头的用户代理的利益:

<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>301 Moved Permanently</TITLE>
</HEAD><BODY>
<H1>Moved Permanently</H1>
The document has moved <A HREF="http://example.net/">here</A>.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at example.com Port 80</ADDRESS>
</BODY></HTML>

这有必要吗?是否有任何用户代理需要我担心无法理解 Location 标头和空白正文?

我怀疑不是,就像example.net itself outputs a blank body。那么,Apache为什么要这样做呢?

【问题讨论】:

【参考方案1】:

在没有明确配置的情况下,许多用于访问网站的编程工具默认不会遵循重定向。像这样返回内容可以更容易地诊断由于不遵循重定向而导致的问题。例如,脚本中常用的curl,只有在传递-L 选项时才会跟随重定向。

【讨论】:

以上是关于为啥要使用重定向输出内容?的主要内容,如果未能解决你的问题,请参考以下文章

linux输入输出重定向及案例

为啥下面的系统调用输出不重定向到文件?

批处理重定向符>前有数字(数字与>之间没有空格)是为啥会提示ECHO处于关闭状态呢?

CentOS 重定向输入输出

重定向使用场景

为啥重定向输出时测试退出状态不起作用?