当我尝试将所有内容从一个站点重定向到另一个站点时,我遇到了这个问题。我的 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。
我用谷歌搜索了很多,一无所获,所以我不得不来这里寻求帮助,任何帮助将不胜感激,在此先感谢。