2013-04-08 294 views
0

我在PHP中有一個非常簡單的重定向爲小寫的重定向,因爲我的共享服務器限制,我無法在.htaccess中執行此操作。將所有大寫字母替換爲小寫字母,除了urlencoded字符串

 if (preg_match('/[A-Z]+/', $url)){ 
     header("HTTP/1.1 301 Moved Permanently"); 
     header("Location: ".strtolower($url)); 
     exit;  
    } 

但是在某些情況下.htaccess可能已經重定向了一個url。所有這些情況都有urlencoded字符,即。 %7E。

所以我需要檢查任何不是urlencoded char形式的大寫字符,並用小寫字符替換它們。

最壞的情況(也許最好)我不想嘗試已經重定向的標題,我可以檢查它是否已被重定向到PHP。

任何想法,我怎麼可以這樣做呢?

回答

0

你根本就做的是解碼URL刪除urlencoded的字符,然後你用用strtolower(),然後對其進行編碼回:

header("Location: ". urlencode(strtolower(urldecode($url)))); 
相關問題