我有一个网站,很久以前创建使用简单的asp。这是酒店的地盘。它包含列表类型页面和单独的酒店页面。目前,我的站点托管在一个也支持PHP的Windows服务器上(但显然不支持.htaccess )。几个月前,我开始使用php/mysql对整个站点进行重新编码。
首先,我创建了新的列表类型的页面,我做了必要的301重定向在我的主机控制面板,以保持良好的搜索引擎排名。在过去的几个月里,这些页面已经被Google很好的索引了,所以它们都很好。
现在,我准备好重新编码其余的酒店页面(大约。,现在我想将整个站点迁移到支持.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进行必要的大规模重定向?
提前谢谢你。
发布于 2011-09-09 11:41:57
这应该能起作用:
RewriteRule /hotel/deutsch/(.+?)\.asp /hotel/$1.de.php [R=301,L]
RewriteRule /hotel/(.+?)\.asp /hotel/$1.php [R=301,L]编辑:对不起,我错过了德语页面是*.de.php。我更新了答案,以便对英语和德语页面使用单独的重写。
发布于 2011-09-09 11:49:31
这将起作用:
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模式更广泛,而且还将匹配德语URL,这最终会导致错误的重定向)。
https://stackoverflow.com/questions/7360832
复制相似问题