在站点迁移后,使用.htaccess重定向批量301

时间:2011-09-09 11:16:40

标签: .htaccess redirect

我有一个很久以前使用简单的asp创建的网站。这是一个酒店网站。它包含列表类型的页面和单独的酒店页面。目前我的网站托管在支持PHP的Windows服务器上(但显然没有.htaccess支持)。几个月前,我开始使用php / mysql重新编码整个网站。

首先我创建了新的列表类型页面,我在我的主机控制面板上进行了必要的301重定向,以保持良好的搜索引擎排名。在过去的几个月里,这些网页已被Google很好地编入索引,所以它们还可以。

现在我已准备好重新编码剩余的酒店页面(大约400),现在我想将整个站点迁移到支持.htaccess的Apache服务器。

酒店页面有两种语言版本,英语和德语 旧的英文ASP酒店页面位于 www.mysite.com/hotel/hotel-name.asp ,我想将它们重定向到 www.mysite.com/hotel/hotel-name .php ,所以在这种情况下,只有文件扩展名从.asp变为.php。

旧的德国ASP酒店页面位于 www.mysite.com/hotel/deutsch/hotel-name.asp ,我想将它们重定向到 www.mysite.com/ hotel / hotel-name.de.php ,所以在这种情况下,不仅文件扩展名从.asp变为.php,还有文件名和路径。

我的问题是:如何使用.htaccess进行必要的质量重定向?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

RewriteRule /hotel/deutsch/(.+?)\.asp /hotel/$1.de.php [R=301,L]
RewriteRule /hotel/(.+?)\.asp /hotel/$1.php [R=301,L]

编辑:对不起,我错过了德语页面是* .de.php。我已经更新了答案,对英语和德语页面使用单独的重写。

答案 1 :(得分:0)

这将有效:

RewriteEngine On

# redirect German version
RewriteRule ^hotel/deutsch/(.+)\.asp$ http://www.mysite.com/hotel/$1.de.php [R=301,L]

# redirect English version
RewriteRule ^hotel/(.+)\.asp$ http://www.mysite.com/hotel/$1.php [R=301,L]

规则顺序在这里很重要。首先,我们匹配德语版本,然后才匹配英文页面(因为英文网页的网址格式更广泛,也会匹配德国网址,最终会导致错误的重定向)。