我遇到了重复网址的问题,例如:
/term/this-is-the-term
/term/this%20is%20the%20term
我已经通过确保所有链接使用-
而不是
现在我想重定向任何带有%20
的索引网址,以便Google网站管理员解决问题(实际上已经解决了)
如何使用%20
将任何网址重定向到-
?
我知道简单重定向的基础知识,但我闻到这只能使用正则表达式来实现,我不太熟悉,
任何提示?
答案 0 :(得分:6)
尝试:
RewriteEngine On
RewriteRule ^(.*)\ (.*)$ /$1-$2 [L,R=301]
重定向任何带空格(%20)的内容,而不是使用短划线。您需要在中将之前的任何其他规则放在文档根目录中的htaccess文件中(或者您希望它应用于的任何目录中)。
要将此内容应用于您的查询字符串(?
之后的所有内容),您需要执行一些特殊操作:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)%20(.*)$
RewriteRule ^(.*)$ /$1?%1-%2 [L,R=301,NE]
答案 1 :(得分:0)
这是一个单一的规则,将用连字符替换所有空格,无论空格是否在URI中的查询字符串OR中:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^%20]*)%20([^\s]*) [NC]
RewriteRule ^ /%1-%2 [L,NE,R]
答案 2 :(得分:0)
我认为最好的方法是:
Redirect 301 "/term/this is the term" "http://yourdomain.com/term/this-is-the-term"