如何使用'PREG'或'HTACCESS'删除URI中的多个斜杠

Lel*_*lis 8 php .htaccess preg-replace preg-match preg-split

如何使用'PREG'或'HTACCESS'删除URI中的多个斜杠

site.com/edition/new/// - > site.com/edition/new/


site.com/edition///new/ - > site.com/edition/new/

谢谢

Dos*_*Dos 19

$url = 'http://www.abc.com/def/git//ss';
$url = preg_replace('/([^:])(\/{2,})/', '$1/', $url);
// output http://www.abc.com/def/git/ss

$url = 'https://www.abc.com/def/git//ss';
$url = preg_replace('/([^:])(\/{2,})/', '$1/', $url);
// output https://www.abc.com/def/git/ss
Run Code Online (Sandbox Code Playgroud)


Ibu*_*Ibu 13

+在正则表达式中使用加号表示出现一个或多个前一个字符.因此,我们可以将它添加到preg_replace中,/ 以仅通过其中一个替换一个或多个的出现

   $url =  "site.com/edition/new///";

$newUrl = preg_replace('/(\/+)/','/',$url);

// now it should be replace with the correct single forward slash
echo $newUrl
Run Code Online (Sandbox Code Playgroud)