301重定向以处理新URL和更改的文件类型

时间:2014-11-10 04:41:24

标签: regex apache

我有一个301重定向问题需要解决。我正在将一个Web应用程序从Windows主机移植到新的Linux主机。在此过程中,我将子域折叠到主域(http://subdomain.example.com => http://www.example.com),我还将.Net中的应用程序重写为PHP,因此所有文件类型都已更改( .aspx files => .php文件)。我遇到了一个解决方案来管理问题的域名更改部分,使用.htaccess重定向:

redirect 301 / http://subdomain.example.com/

我还发现了这个应该解决文件类型问题的代码片段:

RedirectMatch 301 (.*)\.aspx$ http://www.example.com$1.php

我现在的问题是如何实现它。我的第一直觉是将它们都插入到新的web根目录.htaccess文件中,但我怀疑这不是正确的方法。有什么建议吗?

编辑:问题已解决 - 请看下面的答案

1 个答案:

答案 0 :(得分:0)

解决方案实际上有两个步骤。首先,我在新服务器上重新创建了子域,即使没有内容通过该域提供。在子域根文件夹中,我创建了一个.htaccess文件,并仅输入301重定向以将请求路由到内容现在所在的主域:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.subdomain\.example\.com$
RewriteRule ^/?$ "http\:\/\/www\.example\.com" [R=301,L]

然后我在实际站点的根目录中创建了另一个.htaccess文件,以便在重新引导的流量发出请求后转换文件类型,使用RedirectMatch将.aspx文件请求转换为.php文件请求:

RedirectMatch 301 (.*)\.aspx$ http://www.example.com$1.php

它完美无缺。

相关问题