2

我遇到了重复网址的问题,例如:

/term/this-is-the-term
/term/this%20is%20the%20term

我已经通过确保所有链接都使用-使用

现在我想重定向任何索引%20的 url,这样问题就会从谷歌网站管理员那里消失(实际上已经解决了)

如何使用%20to重定向任何网址-

我知道简单重定向的基础知识,但我闻到这只能使用我不太熟悉的正则表达式来实现,

有什么提示吗?

4

3 回答 3

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]
于 2013-11-05T20:03:14.933 回答
1

我认为最好的方法是:

Redirect 301 "/term/this is the term" "http://yourdomain.com/term/this-is-the-term"
于 2015-07-08T11:11:52.033 回答
0

这是一条规则,它将用连字符替换所有空格,无论空格是在查询字符串中还是在 URI 中:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^%20]*)%20([^\s]*) [NC]
RewriteRule ^ /%1-%2 [L,NE,R]
于 2013-11-05T20:45:18.593 回答