在HTTP协议中,使用三个数字代表HTTP协议状态。 HTTP状态代码是在Web服务器返回数据的第一行实现的,比如你访问http://www.baidu.com/,百度的服务器会返回的数据第一行是:HTTP/1.1 200 OK 这里就说明百度返回的状态是200,协议是HTTP/1.1,状态描述是OK。 大家都知道g.cn这个google的网址,这个网址会转跳到http://www.google.cn上,当我们访问g.cn的时候第一行返回的是:HTTP/1.1 301 Moved Permanently 说明状态是301,状态描述是Moved Permanently,直译为“永久转移”,这里g.cn用到的就是永久重定向。 大家会问,怎么看到这个“HTTP/1.1 200 OK”这样的状态,这里需要一个能够监控IE浏览器通讯的程序,我用的是HttpWatch 4.0 Professional 专业版,下载地址“http://link.silmoon.net/r/down_s4_11/HttpWatch.rar”,安装后从[查看(V)]-》[浏览器栏(E)]找到HttpWatch,之后会看到这个工具已经显示出来了,在此不多说这个程序怎么使用了。 在程序中实现3xx状态 ASP: 在ASP的编程中有一个方法或者说是函数可以控制状态行的字符,并且可以添加Location这样的字段。
这是永久重定向的实现方法,有人说Response.Redirect也可以重定向,但是你最好用HttpWatch看看到底是不是301! Request.ServerVariables(“HTTP_X_REWRITE_URL”)是ASP中获得请求路径的方法。 PHP:和ASP一样,也是两步
在PHP中header()这个方法直接可以对HTTP头部信息进行操作,如果不写“header(“HTTP/1.1 301 Moved Permanently”); ”这个的话也可以转向,不过和ASP的Response.Redirect一样,状态不会是301而是300。 ASP.net:也是两步
策略 要实现重定向,就要保证用户访问的所有地址都执行了上面的代码,如果有条件可以将所有请求Rewrite到一个这样的文件,如果不行,就想办法都要执行这个代码,其中有很多办法,比如dedecms无论访问什么地址都执行了common.inc.php这个文件,大家就可以上面的代码放到这个文件中。 另外同一空间实现判断重定向,如果一个空间绑定了两个域名 http://www.111.cn http://www.111.com 如果用户访问的是http://www.111.cn/index.asp?page=2这样的网站重定向到http://www.111.com/index.asp?page=2,在同一空间如何实现,这里是以ASP编程做的例子,如果想判断是cn的域名就进行转向,不是com的域名就不转向可以通过编程方法实现判断
补充一下:Apache 服务器可以直接在 .htaccess 文件中实现 301 重定向。 |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-29 11:32 , Processed in 0.291877 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.