如何仅为具有get参数的页面组织301重定向?

时间:2015-02-09 20:58:00

标签: php .htaccess redirect

这是一个快速搜索引擎优化问题。我们决定将我们的网站分成两个不同的网站。谷歌已经抓取了50K页面,我们想要转移到另一个域名。我的问题是什么是处理它的最佳方式,因为我们只希望重定向某些URL而不是整个网站。我应该进行模式重新连接捕获获取参数并将它们发送到新域名吗?或者我应该用PHP标题吗?


olddomain.com成为oldomain.com和newdomain.com


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


oldomain.com与任何其他网址结构应该保持不变


2 个答案:

答案 0 :(得分:0)

您应该能够同时使用RewriteCondRewriteRule指令来匹配查询字符串值,如下所示:

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

答案 1 :(得分:0)

如果您的确是指那组查询参数:

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

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

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