2011-09-09 126 views
0

我有一个很早以前使用简单的asp创建的站点。这是一个酒店网站。它包含列表式页面和个别酒店页面。目前,我的网站托管在支持PHP的Windows服务器上(但显然没有.htaccess支持)。几个月前,我开始使用php/mysql重新编码整个网站。质量301在站点迁移后使用.htaccess重定向

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

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

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

老德ASP页面酒店都位于www.mysite.com/hotel/deutsch/hotel-name.asp,我想他们重定向到www.mysite.com/hotel/hotel-name。 de.php,所以在这种情况下,不仅文件扩展名从.asp改为.php,而且文件名和路径也一样。

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

预先感谢您。

回答

0

这应该做的伎俩:

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

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

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] 

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

+0

@Yaelede所以..这有效吗? – LazyOne