gpt4 book ai didi

asp.net - 如何通过 Web.config 或 C# 将所有内容重定向到 https ://www. 版本的网站?

转载 作者:行者123 更新时间:2023-12-02 16:51:20 24 4
gpt4 key购买 nike

我有一个托管在 GoDaddy 上的 ASP.NET 网站。我需要将每个请求重定向(301)到 https://www.example.com/whatever

例如:

这在 Linux 或 cPanel 主机上是小菜一碟。但我不知道如何在 GoDaddy 上执行此操作(我询问了支持人员,但他们似乎什么都不知道......)。我想使用 IIS 很容易做到,但 GoDaddy 不提供 IIS 访问权限。

那么有没有办法通过 Web.config 或 C# 来做到这一点?最好是web.config

最佳答案

查看我的这篇文章,其中提供了许多不同的选项来避免 ASP.NET 站点中出现重复的 URL:Techniques for Preventing Duplicate URLs in Your Website 。我总结了下面的各种技术,但请参阅本文以获取更深入的处理以及示例 ASP.NET 网站演示。

从 ASP.NET 发出永久重定向

您可以检查 Global.asax 中每个请求的传入 URL文件的 Application_BeginRequest事件处理程序。如果 URL 缺少前导 www.您可以附加它并永久重定向到新 URL。

protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.Url.Authority.StartsWith("www"))
return;

var url = string.Format("{0}://www.{1}{2}",
Request.Url.Scheme,
Request.Url.Authority,
Request.Url.PathAndQuery);

Response.RedirectPermanent(url, true);
}

使用 IIS 7 的 URL 重写模块将 URL 重写为规范形式

如果您的网站由 IIS7 和 Microsoft 的 URL Rewrite Module 托管安装后,您可以在 Web.config 中添加重写规则文件。我没有任何由 GoDaddy 托管的网站,所以我不知道他们是否使用 IIS7(我想他们是这样)或者是否安装了 URL 重写模块。请与支持人员联系。

假设满足这些先决条件,您将使用以下配置:

<configuration>
...

<system.webServer>
<rewrite>
<rules>
<rule name="Canonical Host Name" stopProcessing="true">
<match url="(.*)" />

<conditions>
<add input="{HTTP_HOST}" pattern="^yoursite\.com$" />
</conditions>

<action type="Redirect" url="http://www.yoursite.com/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

通过第三方应用程序重写

许多网络托管公司都安装了第三方 URL 重写应用程序,例如 ISAPI_Rewrite。我不知道 GoDaddy 是否有此功能,您需要咨询支持人员。但这可能是另一种选择。

在标记中告诉搜索引擎蜘蛛您的规范形式

而不用担心将用户重定向到 www.版本中,您可以让用户以他们想要的方式到达您的网站,但向您的页面添加标记以告诉搜索引擎您的 URL 的规范形式。

要指定规范 URL,只需添加 <link> <head> 中的元素网页的一部分。其工作方式如下 - 将以下标记添加到 <head>您希望搜索引擎将您网站中那些页面的部分视为全部相同的 URL:

<link rel="canonical" href="canonical_url" /> 

如果您在 Stackoverflow.com 上查看/源代码,您会看到此 <link>标记到位。这是确保站点中存在重复 URL 的好方法 - 例如 www.yoursite.com/foo.aspxyoursite.com/foo.aspx被视为搜索引擎索引中的相同条目。

祝你编程愉快!

关于asp.net - 如何通过 Web.config 或 C# 将所有内容重定向到 https ://www. 版本的网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5006472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com