Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 301重定向以处理新URL和更改的文件类型_Regex_Apache - Fatal编程技术网

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

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

我有一个301重定向问题要解决。我正在将一个web应用程序从Windows主机移植到新的Linux主机。在这个过程中,我将一个子域折叠为main domain=>,并且我将应用程序从.Net重写为PHP,因此所有文件类型都已更改.aspx files=>.PHP文件。我遇到了一个解决方案,可以使用.htaccess重定向来管理问题的域更改部分:

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

而且效果非常好。

你为什么不把你的解决方案粘贴到实际答案框中,并将其标记为答案?我不知道这是合法的。谢谢你的提示。