我遇到了重复网址的问题,例如:
/term/this-is-the-term
/term/this%20is%20the%20term
我已经通过确保所有链接都使用-
使用
现在我想重定向任何索引%20
的 url,这样问题就会从谷歌网站管理员那里消失(实际上已经解决了)
如何使用%20
to重定向任何网址-
?
我知道简单重定向的基础知识,但我闻到这只能使用我不太熟悉的正则表达式来实现,
有什么提示吗?
尝试:
RewriteEngine On
RewriteRule ^(.*)\ (.*)$ /$1-$2 [L,R=301]
这会将任何带有空格 (%20) 的内容重定向为使用破折号。您需要将该规则放在文档根目录(或您希望应用此规则的任何目录)的 htaccess 文件中的任何其他规则之前。
要将其应用于您的查询字符串(之后的所有内容?
),您需要做一些特别的事情:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)%20(.*)$
RewriteRule ^(.*)$ /$1?%1-%2 [L,R=301,NE]
我认为最好的方法是:
Redirect 301 "/term/this is the term" "http://yourdomain.com/term/this-is-the-term"
这是一条规则,它将用连字符替换所有空格,无论空格是在查询字符串中还是在 URI 中:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^%20]*)%20([^\s]*) [NC]
RewriteRule ^ /%1-%2 [L,NE,R]