2013-04-08 211 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)))); 
相关问题