2015-02-09 52 views
0

这是一个快速的SEO问题。我们决定将我们的网站分成两个不同的网站。 Google已经抓取了我们想移动到另一个域名的5万个网页。我的问题是,处理这个问题的最佳方式是什么,因为我们只希望将某些网址重定向到整个网站。我应该做模式重新接线获取参数并将它们发送到新的域名?或者我应该用PHP头文件吗?如何组织301仅针对获取参数的页面进行重定向?


olddomain.com变得oldomain.com和newdomain.com


oldomain.com?name=jw & gsurname =黑 - > newdomain.com?name=jw & gsurname =黑


oldomain.com与任何其它的URL结构应保持不变


回答

0

您应该能够使用RewriteCondRewriteRule指令一起去匹配查询字符串值,就像这样:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^name=([^&]+)&gsurname=([^&]+)$ 
RewriteRule ^(.*)$ http://newdomain.com?name=%1&gsurname=%2 [R=301,L] 
+0

抱歉打扰。请您在链接上添加一些解释关于通配符的解释 - 希望了解符号的含义。测试是如何进行试验和错误的,或者有一个有意义的方法来做到这一点? – migrant 2015-02-13 13:48:53

+0

这些符号是*正则表达式*。 http://www.regular-expressions.info ...至于测试,我不确定你的意思。测试它。它工作吗?对很好。不错。 – haliphax 2015-02-15 15:41:52

0

如果你的意思是一组查询参数:

RewriteCond %{QUERY_STRING} ^name=([^&]+)&gsurname=(.*)$ 
RewriteRule ^/$ http://newdomain.dom [R=301, L] 

RewriteCond查看查询字符串并检查第一个参数是名称,第二个参数是gsurname。 ([^&]+)收集所有字符,直到找到&符号(^ &表示不是&符号)。 (.*)$收集字符直到查询字符串($)结束。

如果RewriteCond为true,那么RewriteRule将重定向到新的域。查询字符串自动按原样传递。

+0

谢谢。很抱歉打扰。请您在链接上添加一些解释关于通配符的解释 - 希望了解符号的含义。测试是如何进行试验和错误的,或者有一个有意义的方法来做到这一点? – migrant 2015-02-13 13:50:06

+0

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule – bobdye 2015-02-13 15:00:44

+0

谢谢。现在看看。到目前为止,它是非常令人困惑的,因为测试是通过试验和错误 – migrant 2015-02-13 15:18:08