在POINT到该站点的站点中创建应用程序/虚拟目录以模拟多个站点。好主意?

时间:2010-11-15 23:00:43

标签: asp.net iis redirect

我们需要一种说法

www.site.com/india www.site.com/asia www.site.com/usa   等...

但我们希望所有这些请求都指向www.site.com而不必为每种类型的网站物理创建文件和目录......所以如果我只是创建一个虚拟目录(www.site.com / india)并将其指向www.site.com ...然后我想我可以查看URL并相应地设置一些参数/文本/图像以填写模板......

这有意义吗?或者web.configs有问题吗?或者更好的方式

4 个答案:

答案 0 :(得分:3)

我建议您考虑路由,如下所示:http://www.asp.net/mvc/tutorials/asp-net-mvc-routing-overview-cs

这里重复给定的样本,以便您(希望)能够看到相关性:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MvcApplication1
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );

        }

        protected void Application_Start()
        {
            RegisterRoutes(RouteTable.Routes);
        }
    }
}

通过类似的方法,您只需提取所需的信息


第一个示例是针对MVC路由,要进行webforms路由,你应该看看http://msdn.microsoft.com/en-us/library/cc668202(VS.90).aspx这里是一个(非常有限的)示例:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.Add("BikeSaleRoute", new Route
    (
       "bikes/sale", 
       new CustomRouteHandler("~/Contoso/Products/Details.aspx")
    ));
}

使用他们在代码中构建的自定义路由处理程序。一旦你掌握了它,它就很容易使用。它们让你更具表现力。

答案 1 :(得分:2)

我认为您会发现,在没有使用不同的web.configs指向您的本地化文件的情况下,以五种方式本地化同一网站将很困难。

我要做的是让www.site.com的索引​​枯萎自动发现客户的位置或询问他们想要的网站版本。然后,将它们引用到该站点的虚拟目录下的default.aspx,该目录使用一组通用的自定义Web控件,根据该站点的web.config中引用的资源文件进行本地化。这样,您需要复制的只是站点骨架,它可以与index.aspx一样小。

如果该网站主要是aspxs,那么这也不会起作用。在这种情况下,我会像以前一样进行网站选择,但使用查询字符串来跟踪客户端位置,从而跟踪本地化。这应该仍然允许您调出正确的本地化设置。

答案 2 :(得分:1)

不,请保证我不要为世界上的每个国家/地区创建虚拟目录。结帐routing。这里有一些other examples

答案 3 :(得分:1)

如果您尚未编写网站,请考虑使用路由甚至更好的MVC。你绝对不应该创建多个虚拟目录 - 维护

将是一场噩梦