PHP 重新導向失效修復

 最近,把以前的程式拿出來,準備移植到新的舊平台上,怎麼說呢?程式很舊,用的環境很舊,偏偏作業系統很新,而程式很老,只能用老的套件,這有什麼問題嗎?問題就在新的作業系統本身不提供老的套件,也就是說,老程式就算會跳舞也沒舞臺了

另外還發現人也老了…還有就是修舊如舊也是得花很多工夫的… 能修好嗎?問題是

工作環境:
  Ubuntu Server 22 LTS
    docker: lamp stack
        PHP 5.5

 光是修這個重新導向可能就要花好多功了,因為之前寫的時侯用了很多跳轉的做法

 找到了個不用自已折騰那麼多的做法,把要跳轉的部份從原本的 header(Location: ...) 換成

redirect_rel($relative_url) 就行了

function server_url()
{  
    $proto = "http" .
        ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://";
    $server = isset($_SERVER['HTTP_HOST']) ?
        $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
    return $proto . $server;
}
   
function redirect_rel($relative_url)
{
    $url = server_url() . dirname($_SERVER['PHP_SELF']) . "/" . $relative_url;
    if (!headers_sent())
    {
        header("Location: $url");
    }
    else
    {
        echo "<meta http-equiv=\"refresh\" content=\"0;url=$url\">\r\n";
    }
}

 

就行了嗎?好多地方要換啊,沒換的都會停在原本的網頁上…

至少找到路了,希望不要花太多生命在 debug 上,還一大堆東西等著除錯呢!移植果然是很花生命的…

 

收工!

留言

這個網誌中的熱門文章

使用 Excel 計算2個地點之間的直線距離

LINE 儲存的檔案傳到 email 不方便 很不方便 非常不方便 但是有解的筆記

合併列印標籤漏印