2010-01-29 141 views
5

任何人都有将域映射到MVC区域的经验吗?将域名映射到MVC区域

这里是我们的处境:

旧系统(仍然有效,但很快就会重新导向至新店):

www.example.com - 我们的主要网站,我们将流量发送
store.example.com - 我们的商店网站是一个完全独立的网站,在google中被索引

新系统:

www.example.com - 同一站点
www.example.com/store之前 - 新的商店网站 - 内置在ASP.NET MVC区域

因为商店一个单独的域名谷歌给它一个单独的条目在搜索结果中。我想在未来保持这种优势,但是想知道是否有一种将域(store.example.com)映射到MVC区域的好方法,或者它是否会比它的价值更麻烦。

PS。我并没有试图保留现有的索引 - 它是一个完全独立的商店,所以这是不可能的。我只是想重定向到新商店中的相应页面。我只是想尽量避免为SEO目的而损失两个域名的好处。

+0

为什么你认为拥有两个网站对搜索引擎优化有好处,而不是把所有的“链接果汁”都放到一个域中?他们是否拥有相同的内容或不同的内容?如果他们有相同的内容,你指定规范的URL? – 2010-04-15 00:23:08

+0

当你说'重定向到相应的页面'时,该映射是如何处理的?是否有旧的URL路径的MVC路线映射到处理它的新控制器/动作?或者你想要做一个从旧的URL结构永久重定向到新的? – 2010-04-15 00:24:49

+0

您使用的是哪个版本的IIS,是IIS7.5应用程序和请求路由模块的一个选项? – 2010-04-15 00:25:28

回答

5

我会在ASP.NET或IIS7应用程序和请求路由(ARR)中使用URL重写来将store.example.com/...的传入请求更改为example.com/store/ ....

MVC将没有任何问题 - 它不会看到任何东西,但新的URL,它只会产生新的布局的链接。

其他替代方案:

  • 创建,只是做一个通配符301重定向为每个页面的相应页面上的新址store.example.com网站。

  • 如果URL完全不重叠,则将旧域指向新的MVC站点并为每个操作添加重复路由,例如, shop.example.com/info.aspx?item27可能有一个路由"/info.aspx/{pathinfo*}" ......它加载了一个Action,该Action知道如何处理旧的URL参数,并可以重定向到新的Action。

  • 我那里有很多的URL映射到同一个作用点 - 事实上,曾经被用于页面的每个传统URL今天仍然适用,甚至包括其现在所服务的老.ASPX网址由MVC行动。一些遗留的URL使用301响应来处理,其他在网站上合法地具有重复内容的URL被正常处理,但该页面还包括规范URL以指出哪一个是首选URL。