: Remove multiple trailing slashes in a single 301 in .htaccess? There is a similar question here, but the solution does not work in Apache for our site. I'm trying to remove multiple trailing
There is a similar question here, but the solution does not work in Apache for our site.
I'm trying to remove multiple trailing slashes from URLs on our site. I found some .htaccess code that seems to work:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
This rule removes multiple slashes from anywhere in the URL:
www.mysite.com/category/accessories//// becomes www.mysite.com/category/accessories/
However, it redirects once for every extra slash. So:
www.mysite.com/category/accessories/////// 301 Redirects to www.mysite.com/category/accessories////// 301 Redirects to www.mysite.com/category/accessories///// 301 Redirects to www.mysite.com/category/accessories//// 301 Redirects to www.mysite.com/category/accessories/// 301 Redirects to www.mysite.com/category/accessories// 301 Redirects to www.mysite.com/category/accessories/
Is it possible to rewrite this rule so that it does it all in a single 301 redirect?
Also, this above directive does not work at the root level of our site:
www.mysite.com///// does not redirect but it should.
More posts by @Gonzalez347
2 Comments
Sorted by latest first Latest Oldest Best
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{THE_REQUEST} ^[A-Z]+s//+(.*)sHTTP/[0-9.]+$ [OR]
RewriteCond %{THE_REQUEST} ^[A-Z]+s(.*/)/+sHTTP/[0-9.]+$
RewriteRule .* %{HTTP_HOST}/%1 [R=301,L]
If the slashes may only occur at the end of the URL, you may use this
RewriteCond %{REQUEST_URI} ^(.*?)(?:/){2,}$
RewriteRule . / [R=301,L]
Terms of Use Create Support ticket Your support tickets Stock Market News! © vmapp.org2025 All Rights reserved.