htaccess从旧站点重定向到新站点

时间:2011-10-03 14:24:32

标签: .htaccess redirect dynamic-pages

现有网站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”文件夹中的所有文件,包括动态页面,但我不知道如何以这种格式做到这一点。

顺便说一句,这里是我的oldsite到newsite索引页重定向的代码。

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]

1 个答案:

答案 0 :(得分: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>

More info关于rel规范。