2013-04-21 97 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