我想阻止用户去说example.com和只去www.example.com,我们正在使用IIS 6,所以说他们去example.com它可以在www.example.com等钉
这是一个设置的地方,否则我将不得不编写代码的时候检查的子域时,他们的土地,并相应地重定向?
编辑:我知道最好的办法是,如果用户启动一个进程(这是LMS),而在跟踪不为.asmx文件工作URL的万维网从www前缀,但无论出于何种原因,离开那就是为什么我试图迫使"WWW",因为如果有人没有它,然后他们想知道为什么跟踪不起作用.
如果您正在使用ASP.NET创建一个HttpModule,请处理BeginRequest事件并在您的处理程序中添加此代码:
HttpApplication application = (HttpApplication)source; HttpContext context = application.Context; if (context.Request.Url.Host == "example.com") { context.Response.Clear(); context.Response.Status = "301 Moved Permanently"; context.Response.AddHeader("Location", "http://www.example.com" + context.Request.RawUrl); }
请注意,我没有使用Response.Redirect(),这是为了SEO而完成的,因为Response.Redirect()总是返回状态302,这意味着对象被临时移动,而状态301表示对象被永久移动,这将保持您的页面的PageRank不在www和非www版本之间划分(如果搜索引擎爬虫可以使用www和非www URL访问页面,它们将在两者之间划分你的PageRank,因此搜索引擎抓取工具使用301,并将您的PageRank仅保留到您网站的www版本).
由于两个记录都已指向正确的服务器...
......你可以简单地建立一个新的网站在IIS(服务器版本需要),并让它只响应example.com(主机头设置),并把它重定向到URL通缉(检查重定向在主目录选项卡网址并输入www.example.com).然后原始站点应该处理它(你可以设置它的主机头来回答www.example.com更具体).
如果您无法在Web服务器上执行此操作,则您的发布防火墙应该能够,或者您可以考虑替换它.您的DNS提供商也可以提供(双关语不打算)重定向服务(基本上是做同样的事情,如以上对你我猜).