问题与http://和http:// www

时间:2010-01-14 09:54:55

标签: asp.net .net iis dns

我有一个托管在临时服务器上的应用程序。如果我通过提供我的凭据来使用我的应用程序,我可以打开URL => http://mysite.com

但是,如果我将网址更改为http://www.mysite.com,网站会再次显示登录页面以请求凭据(我刚刚提供的)。

现在在登台服务器上,如果我在地址栏中输入http://mysite.com,我会收到http://mysite.com。但是当我在地址栏中输入google.com时,我会被带到http://www.google.com。这是怎么回事?

我的问题是:当我的应用程序上线并输入mysite.com时,网址会转换为http://www.mysite.com还是我需要做一些事情才能将网址转换为包含www的网址}?

4 个答案:

答案 0 :(得分:6)

您需要设置转发器以将www子域转发到根域。

以下是一些方法:

答案 1 :(得分:3)

如果您无法执行Skilldrick建议的任何网址重写方法,则需要配置身份验证模块以使用正确的共享域Cookie。

如果您使用的是表单身份验证,则可以在web.config中实现:

<forms name="name" 
       loginUrl="URL" 
       defaultUrl="URL"
       domain=".example.com">
</forms>

注意域中的前导期 - 这会编写一个可以从example.com和www.example.com读取的身份验证cookie,这意味着您现在将登录该站点的两个变体。

话虽如此,Skilldrick提供的最后一个例子很好用,并且在你的网站上实现应该相当简单。

答案 2 :(得分:1)

您似乎要问几个不同的问题:

首先关闭 - 为什么在输入http://www.google.com时获得http://google.com

这是因为谷歌正在服务器端进行重定向,因此所有前往http://google.com的人都以http://www.google.com /

结束

您也可以通过将每次调用重定向到http://www.mysite.comhttp://mysite.com来执行相同操作。

这可以通过使用Response.Redirect方法,使用URL重写模块或多种方式中的任何一种来实现。

答案 3 :(得分:0)

可以通过多种方式处理从一个URL到另一个URL的重定向。一对夫妇是:

  1. 元素刷新标记,托管在http://mysite.com,其中包含以下内容:

    <meta http-equiv="refresh" content="1;url=http://www.mysite.com">
    
  2. 网址重写,例如Apache(http://httpd.apache.org/docs/2.2/mod/mod_rewrite.htmlhttp://www.widexl.com/tutorials/mod_rewrite.html可能需要查看的地方):

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.mysite.com$ [NC]
    RewriteRule ^(.*)$ http://www.mysite.com/$1 [R,L]
    

    这将用于外部重定向(HTTP 302)任何与www.mysite.com不匹配的主机到http://www.mysite.com。 IIS也可能也是如此。