• 教您在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

    2019 迅捷格言:事在人為 莫道萬般皆無奈;境由心造 后退一步萬事寬! 有事您說話,小捷很樂意幫助您!