我有不同的URL两个相同的网站:下ISAPI_Rewrite 301重定向旧域名新域名,运行ASP.NET4
http://www.oldsite.co.uk和http://www.newsite.co.uk。我希望301将所有请求从旧站点重定向到每个扩展名(例如'index.htm','images/image.jpg','directory/subdirectory /'等)的新站点。所有对旧域中任何类型文件/文档/路径的引用都需要定向到新域中的相同位置。
这些网站运行使用.NET4的内容管理系统。
到目前为止,我已经尝试了这两种方法:首先通过在IIS中设置永久重定向。这工作的程度,但给了我一个新的URL是这样的:
http://www.newsite.co.ukeurl.axd/5e42bf571e13754bbed8710d 2d377a5d/
所有我已经能够找出与问候到“eurl.axd”的东西是它是由引起在重定向期间以某种方式拦截请求的ASP.NET4框架。我找到的唯一的解决方案将涉及禁用asp.net 4(这不是一个选项,因为CMS运行在此上)或做某种注册表黑客,我真的不想做的事情(铭记在那里是此服务器上的其他域)。
另一种选择是使用ISAPI_Rewrite。我试过这个:
RewriteRule (.+) http://www.newsite.co.uk$1 [R=301,L]
但是,这也给与eurl.axd的东西同样的问题。所以,我想这一点,这消除了eurl.axd东西,但似乎只针对网站的首页工作 - 没有任何其他页面或资源:
RewriteRule (.*)eurl.axd/.* http://www.newsite.co.uk/$1 [R=301,L]
当我运行这没有什么错误日志但重写日志显示该规则未按需要工作,例如尝试访问“http://www.oldsite.co.uk/technical.aspx”只是加载该页面在浏览器中(无重定向),并将其输出日志:
(2) init rewrite engine with requested uri /technical.aspx
(1) Htaccess process request C:\Program Files\Helicon\ISAPI_Rewrite3\httpd.conf
(1) Htaccess process request c:\inetpub\vhosts\oldsite.co.uk\httpdocs\.htaccess
(3) applying pattern '(.*)eurl.axd/.*' to uri 'technical.aspx'
有谁知道如何修改此规则,以便将所有资源从旧域重定向到新域?
非常感谢!
这是一个有趣的选择,谢谢。我需要100%确定,尽管在我这样做之前,我的重定向解决方案重定向了所有资源。标准IIS6重定向是否执行此操作? – Dan 2012-03-07 14:21:16
其实,如果我只是禁用ASP,会更进一步。在旧网站上的NET4,并设置通过IIS重定向将工作? – Dan 2012-03-07 14:22:45
我可以确认此解决方案无效。它适用于主页,但不适用于任何其他文件/文件夹/路径。如果我创建一个新的域来进行转发,那么我基本上必须创建整个文件夹结构,但不使用.NET4,这不是一个解决方案。不过值得一试,谢谢。 – Dan 2012-03-07 15:49:54