2

有一个现有站点 h*tp://www.oldsite.com/ 我需要将其重定向到新站点 h*tp://www.newsite.co.za/。旧站点已设置为新站点主机帐户上的停放域。下面是newsite主机的文件结构。h*tp://www.newsite.co.za/ - /public_html h*tp://www.oldsite.com/ - /public_html/oldsite.com

新站点是对旧站点的完整重组,因此我需要将旧站点的所有索引页面重定向到新站点的一些相应页面。我设法重定向了静态页面,但我在动态页面上遇到了困难。例如:

h*tp://www.oldsite.com/The_Wine_Shop/Bales_Private_Vintners.aspx?CatID=13&PageID=175&RefPageID=169

h*tp://www.newsite.co.za/buy-wine/buy-wine-online/

有几个页面需要根据上面的示例格式重定向。进行重定向的最简单方法是什么。我正在考虑只重定向“The_Wine_Shop”文件夹中的所有文件,包括动态页面,但我不知道如何以这种格式执行此操作。

顺便说一下,这是我的旧站点到新站点索引页面重定向的代码。

Options +FollowSymLinks
RewriteEngine On
RewriteCond  %{HTTP_HOST}  ^oldsite\.com [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite\.com
RewriteRule  ^/?(.*)  http://www\.newsite\.co\.za/$1 [R=permanent,L]
4

1 回答 1

1

您可以在 .htaccess 中添加另一个规则集:

RewriteCond %{REQUEST_URI} ^/The_Wine_Shop/
RewriteRule ^(.*)$ http://www.newsite.co.za/buy-wine/buy-wine-online/ [R=301,L]

这将重定向以 . 开头的每个页面/The_Wine_Shop/

如果您想检查请求的 URI 和查询字符串,您可以使用以下内容:

RewriteCond %{REQUEST_URI} ^/The_Wine_Shop/Bales_Private_Vintners\.aspx$
RewriteCond %{QUERY_STRING} CatID=13
RewriteCond %{QUERY_STRING} PageID=175
RewriteCond %{QUERY_STRING} RefPageID=169
RewriteRule ^(.*)$ http://www.newsite.co.za/buy-wine/buy-wine-online/ [R=301,L]

如果您不关心 URL 是大写还是小写,请将NC-Flag添加到条件中。

您还应该将<link rel="canonical" href="http://new-and-correct-url" />标签添加到您的新网站<head>

有关rel 规范的更多信息。

于 2011-11-09T20:37:39.320 回答