我有几个域共享同一个站点,并使用default.asp作为默认文件,测试SERVER_NAME变量并使用Response.Redirect重定向到请求的站点的主页。
问题是这种类型的重定向会导致302状态代码。即使在我的web.config中有一个重写部分(其中我用redirectType="Permanent"为每个站点创建了一个重定向规则),也会返回状态代码302。
这对谷歌索引中的页面排名是不利的。有人知道如何解决这个问题并返回301状态代码吗?
发布于 2021-01-25 03:27:22
我假设您使用的是经典的ASP (而不是.NET),因为您指的是default.asp而不是default.aspx。
不要使用response.redirect并指望您的web配置文件从302更改为301,而是尝试在重定向用户之前将301添加到响应对象中。
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "new_page_name.asp"
%> 如果您实际使用的是.NET,请使用以下内容:
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://example.com");
}
</script>有关详细信息,请参阅https://docs.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525844(v=vs.90)。
发布于 2021-01-25 20:00:43
我用Response.RedirectPermanent解决了Asp.NET的问题,这个方法返回一个301状态代码。
https://webmasters.stackexchange.com/questions/132977
复制相似问题