Windows 가상 호스트 와 VPS 는 301 리 셋 을 어떻게 실현 합 니까(asp.net)

4109 단어 301 방향 변경
301 재 정립 이 이렇게 중요 한데 어떻게 301 재 정립 을 실현 합 니까?루 송 송 송 은 그의'301 영구 리 셋 실현 방법'이라는 글 에서 301 리 셋 을 실현 하 는 여러 가지 방법 을 소개 했다.그러나 그 안의 방법 은 윈도 가상 호스트 나 윈도 VPS 를 사용 하 는 친구 들 에 게 한 페이지 의 리 셋 을 제외 하고 IIS 서비스 기 가 전체 사이트 301 리 셋 을 실현 하 는 방법 은 적용 할 수 없다.많은 가상 호스트 와 VPS 공급 자 들 이 301 리 셋 을 지원 하지 않 기 때문이다.본인 은 이 문제 에 부 딪 혀 매우 곤란 합 니 다.많은 자 료 를 검색 하거나 포럼,유명 SEO 블 로그 에서 문의 한 결과 가상 호스트 는 보통 301 방향 을 바 꿀 수 없 으 며 독립 서버 를 사용 하 는 것 을 권장 합 니 다.독립 호스트 가 있 으 면 좋 겠 지만 은 이 제한 되 어 있 습 니 다.많은 친구 들 이 상술 한 문제 에 부 딪 혔 다 고 믿는다.한 동안 의 연 구 를 통 해 저 는 Windows 가상 호스트 와 VPS 가 301 방향 을 바 꾸 는 방법 을 찾 았 습 니 다.여기 서 여러분 과 공유 하 겠 습 니 다.1.첫 번 째 방식 은 웹.config 설정 을 통 해 실현(IIS 는 7.0 버 전 이 어야 합 니 다)만약 에 저희 가 jb51.net 301 을 www.jb51.net 으로 바 꿔 야 한다 고 가정 합 니 다.그러면 프로그램 루트 디 렉 터 리 에 있 는 웹 config 파일 의노드 에 다음 코드 를 추가 하면 됩 니 다
 
<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 프로그램 에 적용 되 지 않 는 다.

좋은 웹페이지 즐겨찾기