-2

我正在寻找 PHP 代码来查找 URL 末尾是否有多个斜杠(/)。例如,我想要一个具有以下结构的 if 条件:

$requesturl = $_SERVER['PATH_INFO']
if ( <condition> ) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: <url>");
}

我正在寻找条件url代码。该条件需要在 $requesturl 的末尾检测多个斜杠,并且 url 必须是只有一个斜杠的当前页面 url。

4

3 回答 3

1

即使 '//' 在 url 的中间,这肯定会起作用。希望这个Hepls。

<?php
$url = $_SERVER['REQUEST_URI'];
$len = strlen($url);
$i=0;
while($i<=$len)
{
$i++;
$url = str_replace('//','/',$url);

}
$url = str_replace('http:','http://',$url);
echo "<script>window.location='".$url."'</script>";
?>
于 2012-11-09T05:50:31.363 回答
0
<?php

$sample = array(
     "http://www.example.com/abc/d",
     "http://www.example.com/abc/d/",
     "http://www.example.com/abc/d//",
     "http://www.example.com/abc/d///"
);

foreach ($sample as $url) {
    echo trim_end_slash($url);
}

function trim_end_slash($url) {
    if(preg_match("/(.*?\/)\/+$/", $url, $matches)) {
        return $matches[1] . "\n";
    } else {
        return $url . "\n";
    }
}


?>
于 2012-11-09T05:51:56.900 回答
0

如果 URL 末尾有两个或多个斜杠:

$requesturl = $_SERVER['PATH_INFO'];

if(preg_match('/\/{2,}$/',$requesturl) === 1){
header("HTTP/1.1 301 Moved Permanently");
header("Location: <url>");
}
于 2012-11-09T05:52:15.163 回答