JavaScript를 사용하지 않고 웹 페이지를 리디렉션하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/875318

문제

기본 페이지에 브라우저의 언어에 따라 사용자를 내 웹 사이트의 언어 별 버전으로 리디렉션하는 스크립트가 있습니다. JavaScript를 활성화하지 않은 사용자를 리디렉션하는 것을 추가하고 싶습니다.

현재 나는 다음과 같습니다.

<noscript>
  <META HTTP-EQUIV=REFRESH CONTENT="1; URL=en/index.htm">.
</noscript>

그러나 일부 검색 엔진이 눈살을 찌푸 렸기 때문에 이것이 현명하지 않다고 읽었습니다. 이 작업을 수행하고 검색 엔진을 행복하게 유지하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

301 HTTP 상태 코드로 서버 측에서 리디렉션 할 수도 있습니다. 이것은 좋은 SEO를 위해 그것을하는 가장 좋은 방법입니다. 예제는 C#에 있지만 모든 plattform은 응답에 헤더를 추가하는 자체 방법이 있습니다.

Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", "/newfolder/newfilelocation");

301 상태 코드를 사용하는 이유는 검색 엔진이 "일시적으로 이동 한"302 대신 "영구적으로 이동"되었기 때문에 새 페이지를 색인하기 때문입니다.

다른 팁

.htaccess 파일을 사용하여 헤더에서 브라우저의 언어를 감지 한 다음 (정규 표현식 사용) 그런 식으로 리디렉션해야합니다. 이를 수행하면 클라이언트 측정 구성이 완전히 불가능하며 검색 엔진은 올바르게 처리됩니다. 구체적으로이를 달성하는 방법에 대한 많은 정보가 있습니다.

다음 HTTP 헤더를 추가하여 서버 측 언어로 수행 할 수 있습니다.

Location: /en/index

사용자를로 리디렉션합니다 http://www.example.com/en/index

당신은 필요합니다 구문 분석 Accept-Language HTTP 헤더.

302 HTTP 상태 코드로 응답하여 서버 측에서 리디렉션하지 않겠습니까? 나는 당신이 서버에 무엇을 가지고 있는지 모르겠지만 모든 프레임 워크가 그것을 지원합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top