当HTTP资源或网页更改位置时,通常重要的是提供某些方法来提醒用户这些资源已移动。 HTTP协议为此提供了多个“重定向”状态代码,用于与客户端应用程序进行通信,而不会影响用户体验。
Apache提供了许多“重定向”配置说明,这些说明允许管理员在配置文件中指定资源以重定向到另一个URL。重定向请求后,服务器将返回请求结果,该结果指示客户端启动对目标资源新位置的第二个请求。
重定向可以告诉客户端所请求的页面已临时或永久移动。 Apache提供了轻松支持这些功能的工具。本指南描述了重定向配置说明,如何设置各种重定向选项以及如何将资源请求类重定向到新位置。
重定向
重定向配置指令可以位于主服务器配置文件中,但是我们建议您将其保留在虚拟主机条目或目录块中。您也可以在.httaccess文件中声明重定向语句。以下是重定向指令的示例:
Redirect /jiumulu http://cdsy.com.cn/xinmulu/
如果未给出参数,则发送临时(例如302)重定向状态。 在这种情况下,会通知客户端(用户代理)// jiumulu的可用资源已临时移至http://cdsy.com.cn/xinmulu/。
要指定特定的HTTP重定向状态,请指定以下状态之一:
Redirect permanent /username http://cdsy.com.cn/~username/
Redirect temp /username http://cdsy.com.cn/~username/
Redirect seeother /username http://cdsy.com.cn/~username/
Redirect gone /username
此重定向告诉客户端资源已永久移动,这与HTTP状态301相对应。“ temp”状态是默认行为,表示重定向仅是临时的;默认状态是重定向。 这对应于HTTP状态302。发送“another”状态以指示所请求的信号:该资源已被另一个资源替换(HTTP状态303)。 最后,“gone”状态告诉客户端资源已被(永久)删除; 这发送HTTP状态410作为不可用“ 404”状态的替代。 如果是“leaved”重定向,请忽略最终网址。
Apache还提供了另外两个永久性和临时性重定向指令,它们更加清晰。 它们如下:
RedirectPermanent /username/bio.html http://cdsy.com.cn/~username/bio/
RedirectTemp /username/bio.html http://cdsy.com.cn/~username/bio/
此外,Apache还可以使用RedirectMatch指令来使用正则表达式将请求类型重定向到新地址。 例如:
RedirectMatch (.*)\.jpg$ http://static.cdsy.com.cn$1.jpg
该指令匹配对扩展名为.jpg的文件的任何请求,并将其替换为第二个域上的位置。 因此:
Request for http://www.cdsy.com.cn/cdsy.jpg will be redirected to http://static.cdsy.com.cn/cdsy.jpg
Requests for http://www.cdsy.com.cn/images/cdsy.jpg will be redirected to http://static.cdsy.com.cn/images/cdsy.jpg