如何只为带get参数的页面组织301重定向?
How to orgnize 301 redirects only for pages with get parmeters?
这是一个快速的 SEO 问题。我们决定将我们的网站分成两个不同的站点。 Google 已经抓取了 50K 个页面,我们希望将其移动到另一个域名。我的问题是最好的处理方法是什么,因为我们只希望重定向某些 URL 而不是整个网站。我应该做 mode rewire 捕获 get 参数并将它们发送到新域名吗?或者我应该用 php headers 来做?
olddomain.com 变为 oldomain.com 和 newdomain.com
oldomain.com?name=jw&gsurname=black --> newdomain.com?name=jw&gsurname=black
oldomain.com 与任何其他 url 结构应该保持相同
您应该能够同时使用 RewriteCond
和 RewriteRule
指令来匹配查询字符串值,如下所示:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^name=([^&]+)&gsurname=([^&]+)$
RewriteRule ^(.*)$ http://newdomain.com?name=%1&gsurname=%2 [R=301,L]
如果您指的正是那组查询参数:
RewriteCond %{QUERY_STRING} ^name=([^&]+)&gsurname=(.*)$
RewriteRule ^/$ http://newdomain.dom [R=301, L]
RewriteCond 查看查询字符串并检查第一个参数是 name,第二个参数是 gsurname。 ([^&]+)
收集所有字符,直到找到一个符号(^& 表示不是符号)。 (.*)$
收集字符直到查询字符串 ($).
结束
如果 RewriteCond 为真,则 RewriteRule 重定向到新域。查询字符串按原样自动传递。
这是一个快速的 SEO 问题。我们决定将我们的网站分成两个不同的站点。 Google 已经抓取了 50K 个页面,我们希望将其移动到另一个域名。我的问题是最好的处理方法是什么,因为我们只希望重定向某些 URL 而不是整个网站。我应该做 mode rewire 捕获 get 参数并将它们发送到新域名吗?或者我应该用 php headers 来做?
olddomain.com 变为 oldomain.com 和 newdomain.com
oldomain.com?name=jw&gsurname=black --> newdomain.com?name=jw&gsurname=black
oldomain.com 与任何其他 url 结构应该保持相同
您应该能够同时使用 RewriteCond
和 RewriteRule
指令来匹配查询字符串值,如下所示:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^name=([^&]+)&gsurname=([^&]+)$
RewriteRule ^(.*)$ http://newdomain.com?name=%1&gsurname=%2 [R=301,L]
如果您指的正是那组查询参数:
RewriteCond %{QUERY_STRING} ^name=([^&]+)&gsurname=(.*)$
RewriteRule ^/$ http://newdomain.dom [R=301, L]
RewriteCond 查看查询字符串并检查第一个参数是 name,第二个参数是 gsurname。 ([^&]+)
收集所有字符,直到找到一个符号(^& 表示不是符号)。 (.*)$
收集字符直到查询字符串 ($).
如果 RewriteCond 为真,则 RewriteRule 重定向到新域。查询字符串按原样自动传递。