这几天查看了一下 Google Analytics 的访问记录,发现原来已经停用且已转向的网站还有访问记录,访问的页面都是 WordPress 自身的搜索页面:http://www.site.com/?s=keyword 。Google 查看了一下收录情况,发现 Google 重新收录了此站点,而且收录内容全是上面的 URL,只是关键字各有不同,多达 280 多项。直到现在没也没有搞明白这些页面 Google 是如何产生关收录的。
不管如何,最好是把这些访问请求自动重定向到新的站点,在 . htaccess 文件中 rewrite 可实现。虽然很小的要求,但是也费了很大的周折,最后才发现重写规则在匹配 URL 时,是不考虑查询字符串的,也就是说 URL 中问号后面的内容是不会进行模式匹配的。所以重写规则略有不同:
RewriteCond %{QUERY_STRING} ^s=.*$
RewriteRule index.php http://www.faceker.com/? [R=301, L]
意思就是如果查询字符串中包含 s= 的话,将包含此串的 URL 永久重定向到 http://www.faceker.com 这个站点。最后面的问号拒绝旧查询字符串跟随,如果去掉问号的话,目标 URL 将包含原 URL 问号后面的 Query String。