2013-01-01 65 views
1

我想在所有%2B的网址上使用301重定向到+。 URL中的+是urlencoded空间。链接到我的其他网站在URL中创建了%2B,并且正在创建一个有效的动态页面,导致重复的内容。重定向%2B到+

例如:

http://www.mythicalcreatureslist.com/mythical-creature/Feng%2BHwang

应该重定向到:

http://www.mythicalcreatureslist.com/mythical-creature/Feng+Hwang

我设法用的20%至做到这一点通过使用此代码:

Options +FollowSymlinks -MultiViews 
RewriteRule ^(.+)(\s|%20)(.+)$ /$1+$3 [R=301,QSA,L,NE] 

所以试过这个:

RewriteRule ^(.+)(\s|%2B)(.+)$ /$1+$3 [R=301,QSA,L,NE] 

但是没有做什么。任何帮助表示赞赏。

+0

多少 '%2B' 将在网址是什么? –

+0

将有多达3'%2B' – Egan7

回答

0

下面的代码可以帮助你:

RewriteEngine On 
RewriteCond %{THE_REQUEST} %2B 
RewriteRule ^(.+)$ %{REQUEST_URI} [R=301,L,QSA,NE] 
+0

Fantastico!这是一个真正的享受。虽然以上与%2B的链接奇怪地链接到旧的脏网址(单独的问题),但重要的是重复内容下的Google网站站长工具链接都指向一个带有+的URL。这将真正帮助打击我的重复内容问题。谢谢habeebperwad! :) – Egan7

+1

P.S.对于具有相同问题的其他人:如果上述代码不起作用,并且出现500个内部服务器错误,请取出方括号中的空格。 [R = 301,L,QSA,NE] – Egan7

+0

@ Egan7我得到了问题。但我不明白这个问题。不应该在那里添加空格? –