0

当我尝试将所有内容从一个站点重定向到另一个站点时,我遇到了这个问题。我的 http 服务器是 apache,我使用 mod_rewrite 来完成这项工作。所以我将这些代码添加到 httpd.conf:

RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^/(.*) http://www.example2.com/$1 [R=301,L]

在我完成之后一切似乎都很好,但是当我访问诸如http://www.example.com/?word=%E5%A4%A9之类的 urlencoded url 时,apache 将我重定向到http://www.example2 .com/?word=%e5%a4%a9,如您所见,所有 urlencoded 字符都被转换为小写字母,这使我无法从搜索引擎中得知我的域更改,因为搜索引擎要求新旧 URI 完全匹配(区分大小写)。

顺便说一句,当我在 PHP 中使用 urlencode() 函数时,它返回的结果会自动大写,所以标准 URL 应该是这样的 %E5%A4%A9。

我用谷歌搜索了很多,一无所获,所以我不得不来这里寻求帮助,任何帮助将不胜感激,在此先感谢。

4

1 回答 1

0

不确定这是否有效,但请尝试

RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^/(.*) http://www.example2.com/$1?%{QUERY_STRING} [R=301,L]

或者

RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^/(.*) http://www.example2.com/$1 [R=301,L,NE]
于 2013-06-07T20:58:35.230 回答