【发布时间】:2011-08-23 08:43:29
【问题描述】:
我正在使用 ASP.NET 4。我想做一个从 http://sitename.com 到 http://www.sitename.com 的 301 重定向。
最好的方法(和可选方法)是什么?
我的网站也在 IP 地址上被编入索引。我怎样才能阻止它。
【问题讨论】:
标签: asp.net asp.net-4.0
我正在使用 ASP.NET 4。我想做一个从 http://sitename.com 到 http://www.sitename.com 的 301 重定向。
最好的方法(和可选方法)是什么?
我的网站也在 IP 地址上被编入索引。我怎样才能阻止它。
【问题讨论】:
标签: asp.net asp.net-4.0
你可以在Page_Load做一个简单的检查:
protected void Page_Load(object sender, EventArgs e)
{
string serverName = HttpUtility.UrlEncode(Request.ServerVariables["SERVER_NAME"]);
string filePath = Request.FilePath;
if (!serverName.ToLower().StartsWith("www."))
serverName = "www." + serverName;
Response.Redirect("http://" + serverName + filePath);
}
或者您可以将以下内容添加到 htaccess 文件中:
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
将domain.com 和http://www.domain.com 替换为您的域。
【讨论】:
我会在 IIS 级别执行 301 重定向,请参阅此博客帖子:SEO Canonical URLs And 301 Redirects In Windows IIS 6, IIS 7
要阻止网站在 IP 地址 configure the "site" in IIS to have a host name 上被索引,请勿将其留空。
【讨论】:
根据您的 DNS 提供商,他们可能会设置重定向,通常称为网络转发、网络别名或网络重定向。只要确保它是 301 而不是框架集。
【讨论】:
<rule name="Redirect to www">
<match url="(.*)" />
<conditions>
<add input="{SERVER_PORT}" pattern="443" negate="true" />
</conditions>
<action type="Redirect" url="https://www.serdardemir.net/{R:1}" />
</rule>
您可以使用 url rewrite 将此规则添加到规则标记中
【讨论】:
<rule name="Redirect to WWW" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^yoursite.com$" />
</conditions>
<action type="Redirect" url="http://www.yoursite.com/{R:0}" redirectType="Permanent" />
</rule>
这段代码对我有用。将此添加到 web.config 文件的规则部分
【讨论】: