将 http://example.com 重定向到 http://www.example.com

发布于 2024-11-04 18:03:42 字数 336 浏览 0 评论 0原文

可能的重复:
将 www 链接路由到 .net mvc 中的非 www 链接

嘿,

我希望我的网站只能在 www 子域上访问。 我该怎么做?

我正在使用 ASP .NET 3.5、C#、IIS 7,但我将其托管在 GoDaddy 上,因此无法访问 IIS,只能访问 FTP。

谢谢, 担

Possible Duplicate:
Route www link to non-www link in .net mvc

Hey,

I want my website to be accessed only on the www sub domain.
How can i do it?

I'm using ASP .NET 3.5, C#, IIS 7, But i host it on GoDaddy so no access to IIS, just FTP.

Thanks,
Dan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

可遇━不可求 2024-11-11 18:03:42

使用Godaddy上提供的重写模块

您可以从 IIS 进行设置,或者将以下内容放入 web.config 中的 下:

<rewrite>
  <rules>
    <rule name="Canonical" stopProcessing="true">
      <match url=".*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^([a-z]+[.]com)$" />
      </conditions>
      <action type="Redirect" url="http://www.{C:0}/{R:0}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

或者,您可以在 global.asax.cs 上进行此重定向:

protected void Application_BeginRequest(object sender, EventArgs ev)
{
    if (!Request.Url.Host.StartsWith("www", StringComparison.InvariantCultureIgnoreCase))
    {
        Response.Clear();
        Response.AddHeader("Location", 
            String.Format("{0}://www.{1}{2}", Request.Url.Scheme, Request.Url.Host, Request.Url.PathAndQuery)
            );
        Response.StatusCode = 301;
        Response.End();
    }
}

Use rewrite module which is available on Godaddy.

You can setup it from IIS or just place in your web.config the following under <system.webServer>:

<rewrite>
  <rules>
    <rule name="Canonical" stopProcessing="true">
      <match url=".*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^([a-z]+[.]com)$" />
      </conditions>
      <action type="Redirect" url="http://www.{C:0}/{R:0}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

Alternatively you can make this redirection on global.asax.cs:

protected void Application_BeginRequest(object sender, EventArgs ev)
{
    if (!Request.Url.Host.StartsWith("www", StringComparison.InvariantCultureIgnoreCase))
    {
        Response.Clear();
        Response.AddHeader("Location", 
            String.Format("{0}://www.{1}{2}", Request.Url.Scheme, Request.Url.Host, Request.Url.PathAndQuery)
            );
        Response.StatusCode = 301;
        Response.End();
    }
}
埖埖迣鎅 2024-11-11 18:03:42

看看 ScottGu 的这篇博文。您必须手动将规则添加到 web.config 中。

Take a look at this blog post by ScottGu. You'll have to manually add the rule(s) to your web.config.

请恋爱 2024-11-11 18:03:42

如果您正在运行 apache Web 服务器,请将其添加到您的 .htaccess 文件中:

RewriteCond %{http_host} .
RewriteCond %{http_host}!^www\.example\.com [NC]
rewriterule (.*) http://www.example.com/$1 [R=301,L] 

If you are running an apache web server, add this in your .htaccess file:

RewriteCond %{http_host} .
RewriteCond %{http_host}!^www\.example\.com [NC]
rewriterule (.*) http://www.example.com/$1 [R=301,L] 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文