实现重定向有许多可能的方法,在Apache网络服务器上(通常作为操作系统呈现在运行UNIX或Linux的机器中),我们能够在一个名为.htacess的标准文件中使用Redirect和RedirectMatch指令轻松地进行重定向。另外,你还可以使用一些称为rewirerules的高级指令,使用称为mod_rewrite的Apache组件进行重定向,我们稍后将对此进行讲解。
在运行MicrosoftIIS的网络服务器中,提供了多种执行重定向的方法。正如我们在“IISRedirects-,”中所描述的那样,最基本的方法是使用IIS控制台。具有IIS服务器的用户还可以使用一个带有指令的文本文件,假设他们使用ISAPI插件,如ISAPI_Rewrite,这一脚本语言具有与Apachemod_rewrite组件相类似的功能。
许多程序员会使用其他的技巧执行重定向,如直接在程序语言中运行,如Perl、PHP、ASP和JavaScript。如果以这种形式运行重定向,那么程序员必须确保网络服务器返回的HTTP状态码是。你可以使用Firefox插件LiveHTTPHeaders、Chrome扩展或基于网络的服务器标题检测工具检查返回的标题。
另外一种执行重定向的方法是在页面层面通过使用元refresh标签执行的,该标签看起来像下面这样:在content部分的第一个参数5表示网络服务器在将用户重定向至指定页面前需等待的时间,发布者可能会使用这一方法展示页面,让用户知道他们将被重定向至一个与其目标页面不同的页面。
但问题是,大部分元新标签都会被看作重定向,唯一的例外情况是你将重定向延迟设置为0秒。你需要放弃能够告知用户你在进行重定向的帮助页面,但搜索引擎可能会把它看作重定向(为安全起见,最好的做法是尽量使用重定向)。
网址重写和重定向的mod_rewrite和ISAPI_Rewrite
对于该话题,有大量的内容可写,本书仅呈现一部分。下面的描述仅是一个简单的描述,旨在帮助一些包括网络设计者和网站管理者在内的专业人员了解重写和重定向是如何运行的。要跳过这一技术性话题,“如何在无循环的情况下重定向主页索引文件”。
Apache的mod_rewrite及MicrosoftIIS服务器的ISAPI_Rewrite均为网址重写提供了很好的途径,使用这些工具的原因如下:
你已经改变了网站中的网址结构,所以内容也从一个位置移动到了另一个位置,当你出于某些原因而改变CMS或网站体制时,便会出现这种情况。
你想将一些不适应搜索引擎的网址替换为搜索引擎友好型网址。
如果你将Apache作为自己的网络服务器,那么你会在.htaccess文件或Apache配置文件中放置一个称为rewriterules的指令(如sites_conf目录中的