url跳轉的兩種實現方式 域名 80埠占用

spectre2發表於2012-11-26
域名服務商的a記錄只能是純ip,而http訪問的是80埠,如果域名指向ip的80埠以及被其他的應用佔用了,例如IIS部署一套佔用80埠的應用(appiis),tomcat(apptom)部署了一套佔用8080埠的應用,這種情況下,可以用url轉發的方式,使訪問apptom的使用者首先訪問IIS,再通過IIS的htm頁url轉發到tomcat上。
一、傳送http頭重新整理頁面
appiis:80/appiis
apptom:8080/apptom
在IIS新建網站(apptom),網站專案下新建一個index.htm的網頁
     
這樣設定完成後,訪問ip/appiis則能夠訪問appiis,訪問ip/apptom則能夠轉發到ip:8080/apptom。
成功
二、javascript的setTimeout函式time時間內執行跳轉函式。

       function ShowMsg($msg,$gourl,$onlymsg=0,$limittime=0)
{
    global $dsql,$cfg_ver_lang,$ucsynlogin;    
    if( eregi("^gb",$cfg_ver_lang) ) $cfg_ver_lang = 'gb2312';
        $htmlhead = '
'."\r\n\r\nDedeCms 系統提示\r\n\r\n";
        $htmlhead .= "\r\n\r\n\r\n
\r\n";

        if(isset($ucsynlogin)){
            $htmlhead .= $ucsynlogin."\r\n";
        }
        
        $htmlhead .= "
        
        if($limittime==0) $litime = 5000;
        else $litime = $limittime;

        if($gourl=="-1"){
            if($limittime==0) $litime = 5000;
            $gourl = "javascript.:history.go(-1);";
        }

        if($gourl==""||$onlymsg==1){
            $msg = "
        }else{
            $func = "      var pgo=0;
      function JumpUrl(){
        if(pgo==0){ location='$gourl'; pgo=1; }
      }\r\n";
            $rmsg = $func;
            $rmsg .= "document.write(\"
DedeCms 提示資訊:
\");\r\n";

            $rmsg .= "document.write(\"


\");\r\n";
            $rmsg .= "document.write(\"".str_replace("\"","“",$msg)."\");\r\n";
            $rmsg .= "document.write(\"";
            if($onlymsg==0){
                if($gourl!="javascript.:;" && $gourl!=""){ $rmsg .= "

如果你的瀏覽器沒反應,請點選這裡..."; }

                $rmsg .= "

\");\r\n";

                if($gourl!="javascript.:;" && $gourl!=""){ $rmsg .= "setTimeout('JumpUrl()',$litime);"; }
            }else{ $rmsg .= "

\");\r\n"; }
            $msg = $htmlhead.$rmsg.$htmlfoot;
        }
        if(isset($dsql) && is_object($dsql)) @$dsql->Close();
        echo $msg;
}

程式執行處,呼叫
     ShowMsg("成功登入,正在轉向管理管理主頁!",$gotopage);
    exit();

相關文章