• 教您在PHP、ASP下搞定301重定向
  • PHP、ASP搞定301重定向

    说实话,用iis做asp或者.net的服务器还是不错,但是用他来做php服务器就差着呢,特别是win03系统经常会有莫名其妙的错误,而且有些错误没办法解决。

    一般来说301重定向大都用服务器重写来做,不过很多iis服务器的用户没有修改httpd.ini文件的权限或者有些服务器干脆就不支持重写,怎么办?用php啊!用php代码可以不管是apache服务器还是iis服务器,也可以不管服务器是否支持重写哦!

    下面这段代码将吧dnscnc.com重定向到www.dnscnc.com ,php代码:

    <?php

    $target_host= "目标地址";

    $the_host =$_SERVER['HTTP_HOST']; //取得当前域名

    $request_uri= isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; //正常方式,判断地址后面是否有参数

    //$request_uri= $_SERVER['HTTP_X_REWRITE_URL']; //伪静态方式

    if($the_host!== $target_host)

    {

    header('HTTP/1.1 301 Moved Permanently');

    header('Location: http://'.$target_host.$request_uri);

    }

    ?>

    习惯用引用的方式调用朋友,可以在公共文件加:

    <?php

    include("301.inc.php");

    ?>

    ASP程序
    <%
    Dim the_host,target_host,request_uri
    target_host="目标地址"
    the_host=Request.ServerVariables("HTTP_HOST")
    request_uri=Request.ServerVariables("URL") &"?"& Request.ServerVariables("Query_String") '正常方式
    'request_uri=Request.ServerVariables("HTTP_X_REWRITE_URL") '伪静态方式
    if the_host <> target_host  then 
        Response.Status="301 Moved Permanently"
        Response.AddHeader "Location", "http://"&target_host&request_uri
    end if
    %>
    若不是新旧域名301而是两个网站的301,可以把request_uri变量去掉,公共文件:
    <!--#include file="301.inc.asp"-->
     


    上一篇一些常见的HTTP状态码

    下一篇网站如何防止SPAM

    2016 迅捷格言:事在人为 莫道万般皆无奈;境由心造 后退一步万事宽! 有事您说话,小捷很乐意帮助您!