Php 301在.htaccess文件中从双斜杠重定向到一斜杠

Php 301在.htaccess文件中从双斜杠重定向到一斜杠,php,apache,.htaccess,redirect,Php,Apache,.htaccess,Redirect,我想用301状态码重定向一些URL 示例: 从www.domain.com//brands/到www.domain.com/brands/ 从www.domain.com//brands/brand1到www.domain.com/brands/brand1 我试过这个 Redirect 301 //brands/ /brands/ 它主要起作用。但是在这个url上没有 www.domain.com/brands/brand1被重定向到www.domain.com/brandsbrand1试试

我想用301状态码重定向一些URL

示例:

从www.domain.com//brands/到www.domain.com/brands/

从www.domain.com//brands/brand1到www.domain.com/brands/brand1

我试过这个

Redirect 301 //brands/ /brands/
它主要起作用。但是在这个url上没有
www.domain.com/brands/brand1
被重定向到
www.domain.com/brandsbrand1

试试这个规则

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule / http://www.example.com/%1/%2 [R=301,L]
您还可以尝试使用重定向匹配:

RedirectMatch 301 ^(.*)//+(.*)$ http://www.example.com/$1/$2
我用php解决了这个问题

我使用了以下代码:

if(strpos($_SERVER['REQUEST_URI'], "//") !== false || strpos($_SERVER['REQUEST_URI'], "///") !== false){
  $url = str_replace("///", "/", $_SERVER['REQUEST_URI']);
  $url = str_replace("//", "/", $url);
  $protocol = "http";
  if(isset($_SERVER['HTTPS'])){
   $protocol = "https";
  }
  $url_final = $protocol . "://" . $_SERVER['HTTP_HOST'] . $url;
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: $url_final");
}

不,它不工作,我的.htaccess文件如下。重写引擎在#选项-索引+FollowSymlinks RewriteCond%{REQUEST_URI}^(.*)/(.*)$RewriteRule.%1/%2[R=301,L]重写条件%{SCRIPT_FILENAME}-f RewriteCond%{SCRIPT_FILENAME}-重写规则^(.*)$index.php/$1否,非工作重定向。谢谢你的帮助。但问题并没有解决