301所有aspx文件到子域

时间:2010-05-04 14:45:12

标签: .htaccess mod-rewrite

我们刚刚为位于example.com的EE中的客户重新设计了一个站点(有和没有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]

有人有解决方案吗?

1 个答案:

答案 0 :(得分:1)

RewriteRule directive仅测试URL path。如果您要测试请求的网址的任何其他部分,则需要使用RewriteCond directive

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^(.*)\.aspx$ http://www2.example.com/$1 [R=301,L]