.htaccess 301将所有aspx文件发送到子域

.htaccess 301将所有aspx文件发送到子域,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我们刚刚为EE中的一个客户重新设计了一个站点,位于example.com(有www和没有www)。他们的原始站点是ASPX。他们仍然有许多ASPX页面需要保留,所以他们的IT人员创建了一个子域www2,它基本上是他们旧站点的克隆 我需要一个htaccess规则来检查请求的页面是否以.aspx结尾,然后重定向到www2子域。它还应该确保请求的页面不存在 我尝试使用下面的规则,但它不起作用 RewriteRule ^http://[www\.?]example.com/(.*)\.aspx$ htt

我们刚刚为EE中的一个客户重新设计了一个站点,位于example.com(有www和没有www)。他们的原始站点是ASPX。他们仍然有许多ASPX页面需要保留,所以他们的IT人员创建了一个子域www2,它基本上是他们旧站点的克隆

我需要一个htaccess规则来检查请求的页面是否以.aspx结尾,然后重定向到www2子域。它还应该确保请求的页面不存在

我尝试使用下面的规则,但它不起作用

RewriteRule ^http://[www\.?]example.com/(.*)\.aspx$ http://www2.example.com/$1 [R=301,L]
我的htaccess文件(包括上述规则)如下所示:

RewriteEngine On

# redirect all .aspx pages to www2
RewriteRule ^http://[www\.?]example.com/(.*)\.aspx$ http://www2.example.com/$1 [R=301,L]

# strip index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
有人能解决这个问题吗

只测试。如果要测试所请求URL的任何其他部分,需要使用:


实际上,这个解决方案有一个问题:它将.aspx从URL中删除。我通过在后面添加.aspx进行了修复$1@Jazzerus:您也可以使用此规则:
RewriteRule^.+\.aspx$http://www2.example.com/$0[R=301,L]
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^(.*)\.aspx$ http://www2.example.com/$1 [R=301,L]