Windows 가상 호스트 와 VPS 는 301 리 셋 을 어떻게 실현 합 니까(asp.net)
4109 단어 301 방향 변경
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^jb51.net$" />
</conditions>
<action type="Redirect" url="https://www.jb51.net/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
안 타 깝 게 도 많은 Windows 가상 호스트 공간 이 사용 되 는 것 입 니까?아니면 IIS 6.0 입 니까?그러면 IIS 6.0 은 301 의 방향 을 바 꿀 방법 이 있 습 니까?두 번 째 방식 을 참고 하 세 요.2.두 번 째 방식:httpModules 의 URL 차단 을 통 해 우 리 는 먼저 프로젝트 에 새로운 라 이브 러 리 를 추가 하고 이름 을'SiteSense.Domain'이 라 고 가정 합 니 다.이 라 이브 러 리 에'DomainLocation'클래스 를 추가 하고 IHttpModule 인 터 페 이 스 를 실 현 했 습 니 다.코드 는 다음 과 같 습 니 다
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Configuration;
namespace SiteSense.Domain
{
public class DomainLocation : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.AuthorizeRequest += (new EventHandler(Process301));
}
public void Process301(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
HttpRequest request = app.Context.Request;
string lRequestedPath = request.Url.DnsSafeHost.ToString();
string strDomainURL = ConfigurationManager.AppSettings["WebDomain"].ToString();
string strWebURL = ConfigurationManager.AppSettings["URL301Location"].ToString();
// Url “www.jb51.net”, “jb51.net”
if (lRequestedPath.IndexOf(strWebURL) == -1 && lRequestedPath.IndexOf(strDomainURL) != -1)
{
app.Response.StatusCode = 301;
app.Response.AddHeader("Location", lRequestedPath.Replace(lRequestedPath, "http://" + strWebURL + request.RawUrl.ToString().Trim()));
app.Response.End();
}
}
}
}
주:이 라 이브 러 리 는'System.configuration'과'System.Web'네 임 스페이스 를 추가 해 야 합 니 다.그 다음 에 우 리 는 프로그램 루트 디 렉 터 리 에 있 는 웹.configuration>노드 에 다음 코드 를 추가 합 니 다
<appSettings>
<add key="WebDomain" value="jb51.net"/>
<add key="URL301Location" value="www.jb51.net"/>
</appSettings>
301 재 설정 을 실현 할 수 있 습 니 다.완료 후,우 리 는 jb51.net 을 방문 할 수 있 습 니 다.브 라 우 저 란 에서 이미 자동 으로 www.jb51.net 으로 변 한 것 을 발견 할 수 있 습 니 다.301 리 셋 성공 을 확인 하기 위해 웹 페이지 HTTP 의 상태 값 을 되 돌려 주 는 도 구 를 개 발 했 습 니 다.특정한 사이트 가 301 리 셋 을 했 는 지 확인 할 수 있 습 니 다.웹 주 소 는 다음 과 같 습 니 다.https://www.jb51.net/http_header/ 。다음 그림 은 내 가 이 도구 로 301 재 정립 을 마 친 후의 검 사 를 하 는 것 이다.상기 두 가지 301 리 셋 을 실현 하 는 방법 은 ASP.NET 프로그램 에 만 적합 하고 ASP 프로그램 에 적용 되 지 않 는 다.