我在PHP中有一个非常简单的重定向,重定向到小写,由于我的共享服务器限制,我无法在.htaccess中执行此操作。
if (preg_match('/[A-Z]+/', $url)){
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".strtolower($url));
exit;
}
但是在某些情况下.htaccess可能已经重定向了网址。所有这些案例都有urlencoded字符,即。 %7E。
所以我需要检查任何不是urlencoded char形式的大写字符,并用小写字符替换它们。
最糟糕(或者最好)的情况我不想尝试已经重定向的标题,我可以查看它是否已经在PHP中重定向。
关于我如何能够解决这个问题的任何想法?
答案 0 :(得分:0)
您可以做的就是解码网址以删除urlencoded字符,然后使用strtolower(),然后对其进行编码:
header("Location: ". urlencode(strtolower(urldecode($url))));