Regex 301重定向以处理新URL和更改的文件类型
我有一个301重定向问题要解决。我正在将一个web应用程序从Windows主机移植到新的Linux主机。在这个过程中,我将一个子域折叠为main domain=>,并且我将应用程序从.Net重写为PHP,因此所有文件类型都已更改.aspx files=>.PHP文件。我遇到了一个解决方案,可以使用.htaccess重定向来管理问题的域更改部分:Regex 301重定向以处理新URL和更改的文件类型,regex,apache,Regex,Apache,我有一个301重定向问题要解决。我正在将一个web应用程序从Windows主机移植到新的Linux主机。在这个过程中,我将一个子域折叠为main domain=>,并且我将应用程序从.Net重写为PHP,因此所有文件类型都已更改.aspx files=>.PHP文件。我遇到了一个解决方案,可以使用.htaccess重定向来管理问题的域更改部分: redirect 301 / http://subdomain.example.com/ 我还发现了这个片段,它应该可以解决文件类型问题: Redir
redirect 301 / http://subdomain.example.com/
我还发现了这个片段,它应该可以解决文件类型问题:
RedirectMatch 301 (.*)\.aspx$ http://www.example.com$1.php
我现在的问题是如何实施它。我的第一反应是将它们都插入到新的web root的.htaccess文件中,但我怀疑这不是正确的方法。有什么建议吗
编辑:问题已解决-请参阅下面的答案。解决方法实际上有两个步骤。首先,我在新服务器上重新创建了子域,即使没有内容可以通过该域提供。在子域根文件夹中,我创建了一个.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
而且效果非常好。你为什么不把你的解决方案粘贴到实际答案框中,并将其标记为答案?我不知道这是合法的。谢谢你的提示。