Removing duplicate slashes in URL via .htaccess or

2019-03-05 16:37发布

I'm trying to remove duplicate slashes from URLs. The following .htaccess rule:

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

do NOT work for me on a URL such as the following:

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

The .htaccess file

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

2条回答
萌系小妹纸
2楼-- · 2019-03-05 17:05

This is because of IIS server, and mainly almost certainly your site is urbanized in .Net .asp or . aspx You need to put into service one miniature script, when your server be given http or https demand it must Lcase(URL). If there are not a lot of pages, you can rename all within lowercase, modify all inner linking of WebPages to lowercase and after that appeal URL removal request in Google webmaster tools.

how to remove duplicate urls

查看更多
我命由我不由天
3楼-- · 2019-03-05 17:22

This rule won't work for backslashes. You must add a similar rule with backslashes

RewriteRule ^(.+)\\\\+(.*)$ $1\\$2 [L,R]

If you want to replace backslashes with (forward) slashes, use this rule instead

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

And to remove all back-/slashes at the end of the request

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

and the same when it is a query string

RewriteCond %{QUERY_STRING} ^(.*=.*?)[/\\]+$
RewriteRule ^.*$ $0?%1 [R,L,QSA]

When everything works as you expect, you can change R to R=301.

Never test with 301 enabled, see this answer Tips for debugging .htaccess rewrite rules for details.

查看更多
登录 后发表回答