使用ISAPI-Rewrite htaccess 301重定向多个网址以获取多个主机名?

时间:2014-11-07 06:20:39

标签: .htaccess redirect iis isapi-rewrite isapi-redirect

我在IIS中有一个站点,它运行在4个不同的主机名上。 CMS处理该问题,并根据传入的主机名显示正确的站点。

我需要使用ISAPI重写来处理所有旧的url并将301重定向到新的等价物,这就是我目前在ISAPI-rewrite .htaccess文件中处理重定向的方式

RewriteEngine on

RewriteRule ^post/my-old-page-one$ /my-newer-page-one [R=301]
RewriteRule ^post/my-old-page-two$ /my-newer-page-two [R=301]

我的问题是,我需要检查域名以查找传入的URL。由于网站具有相同的旧网址,现在需要转到不同的网页。

我希望我能这样做。

RewriteEngine on

RewriteRule ^http://www.siteone.com/post/my-old-page-one$ http://www.siteone.com/my-newer-page-one [R=301]
RewriteRule ^http://www.siteone.com/post/my-old-page-two$ http://www.siteone.com/my-newer-page-two [R=301]

RewriteRule ^http://www.sitetwo.com/post/my-old-page-one$ http://www.sitetwo.com/my-newer-page-one [R=301]
RewriteRule ^http://www.sitetwo.com/post/my-old-page-two$ http://www.sitetwo.com/my-newer-page-two [R=301]

但它不起作用。任何建议都非常感谢。

1 个答案:

答案 0 :(得分:1)

主机名的检查是在单独的条件下执行的,如下所示:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.siteone\.com$ [NC]
RewriteRule ^post/my-old-page-one$ http://www.siteone.com/my-newer-page-one [R=301,NC,L]
RewriteCond %{HTTP_HOST} ^www\.siteone\.com$ [NC]
RewriteRule ^post/my-old-page-two$ http://www.siteone.com/my-newer-page-two [R=301,NC,L]

RewriteCond %{HTTP_HOST} ^www\.sitetwo\.com$ [NC]
RewriteRule ^post/my-old-page-one$ http://www.sitetwo.com/my-newer-page-one [R=301,NC,L]
RewriteCond %{HTTP_HOST} ^www\.sitetwo\.com$ [NC]
RewriteRule ^post/my-old-page-two$ http://www.sitetwo.com/my-newer-page-two [R=301,NC,L]