2013-04-21 73 views
1

我想在URL的末尾完全删除所有斜杠或反斜杠。通过.htaccess或PHP删除URL中的重复斜杠和反斜杠

http://www.mp7.org/?site=69.com\\\\\\\\\\\\\

通过的.htaccess或PHP

下的.htaccess规则不起作用:

RewriteRule ^(.*)[/\]+$ $1 [L,R=301]

#### mod_rewrite in use 
Options +FollowSymlinks 
RewriteEngine On 

请提供替代解决方案。

+0

如何这个网址是否生成?由你还是外部? – 2013-04-21 15:11:46

+0

这是一个测试工具。所有网址都是从外部生成的。 – user6509 2013-04-21 15:16:35

+0

它不起作用,因为斜杠是查询字符串的一部分。 [“当请求的URI包含查询字符串,并且目标URI不包含时,RewriteRule的默认行为是将该查询字符串复制到目标URI”](http://httpd.apache.org/docs/current/重写/ flags.html#flag_qsd)。有关如何使用mod_rewrite修改查询字符串,请参阅http://wiki.apache.org/httpd/RewriteQueryString。 – user113215 2013-04-21 15:16:42

回答

0

你可以做到以下几点:

$string = substr($string, 0, strpos($string, "\\")); 

如果将不会有\出现较早


编辑: 完整的代码进行测试:

<?php 
$string = "http://www.mp7.org/?site=69.com\\\\\\\\\\\\\\\\\\\\\\\\\\"; 
$string = substr($string, 0, strpos($string, "\\")); 
echo($string); 
?> 
+0

好吧,下面的代码生成空白页面:<? $ string = substr($ string,0,strpos($ string,“\”)); ?> – user6509 2013-04-21 15:32:38

+0

您必须将'$ string'更改为url。如果你想看到你必须使用'echo($ string);'或'print $ string;'。 – user2219231 2013-04-21 17:00:01

+0

正如我所说的整个代码返回空白页:<?php $ string =“http://www.mp7.org/?site = 69.com \\\\\\\\\\\\\\\\\\\\\” ; $ string = substr($ string,0,strpos($ string,“\”)); echo($ string); ?> – user6509 2013-04-21 17:12:07