2009-06-01 3 views
3

웹에서 일부 파일 이름을 변경 했으므로 "301 Permanently Moved"를 이전 파일에서 새 파일로 리디렉션하려고합니다.301 HTML 파일에서 직접 리디렉션

문제는 내 웹이 정적 HTML 페이지로 완료되었으며 모든 301 리디렉션 자습서가 PHP, ASP, htaccess 등에서이를 수행하는 방법을 결정한 것입니다. 예전 HTML 파일에 직접 리디렉션을 쓰고 싶습니다. 이게 가능해? 또는 웹 공급자에게 문의하여 서버에서 리디렉션을 해결해야합니까?

내가 서버에 대해 알고있는 유일한 사실은 Windows에서 실행되며 서버 지식이 없다는 것입니다.

편집 : 내 웹 호스팅은 Microsoft IIS 7.0을 사용하므로 여기서는 .htaccess를 사용할 수 없다고 가정합니다.

EDIT # 2 : 이제는 서버 관리자가 정적 HTML 페이지 만 사용한다고해도 web.config 파일을 사용하여 개별 html 파일을 리디렉션 할 수 있습니다. 이거 좋은데.

+0

서버가 자신을 식별하는 방법에 대해 '서버'필드를 확인하십시오. http://web-sniffer.net/을 사용하여 HTTP 헤더 필드를 볼 수 있습니다. – Gumbo

답변

4

HTML을 사용하여 HTTP 상태 코드를 변경할 수 없습니다.

하지만 아파치 웹 서버를 사용하는 경우, 새 주소로 그러한 요청을 리디렉션 mod_rewrite 또는 mod_alias을 사용할 수

# mod_rewrite 
RewriteEngine on 
RewriteRule ^old\.html$ /new.html [L,R=301] 

# mod_alias 
RedirectMatch 301 ^/old\.html$ /new.html 

당신은 지금 당신이 걸 명확히으로

편집 IIS 7을 사용하여 <httpRedirect> element for HTTP redirects을 살펴보십시오.

+0

내 웹 호스팅은 Microsoft-IIS/7.0을 사용하고 있습니다. 비슷한 방법이나 리디렉션이 있습니까? – user20353

+0

이것 좀보세요 : http://www.iis.net/ConfigReference/system.webServer/httpRedirect – Gumbo

3

아니요, 불가능합니다. HTML은 서버에서 처리하지 않으므로 HTTP 헤더를 설정할 수 없습니다.

대신 아파치 설정을 확인해야합니다 (예 : .htaccess).

는 simplist에서 당신은 할 수 :

Redirect 301 old.html http://example.com/new/ 
    Redirect 301 other-old.html http://example.com/newer/ 
+1

HTTP 헤더 필드를 설정할 수 없습니다. 그러나'meta' 엘리먼트의'http-equiv'는 HTTP와 동등한 것으로 가정됩니다. 따라서 이러한 정보는 HTTP 헤더 필드로 간주됩니다. – Gumbo

+2

아니요, http-equiv는 클라이언트가 아닌 HTTP 서버에서 읽고 파싱해야합니다. HTTP 서버는 그렇게하지 않으며 클라이언트는이를 지원하지 않습니다. 이는 HTML5에서 거의 완전히 제거 된 절반 만에 죽고 절반 만 깨진 기능입니다. – Kornel

+0

@proneL : 네, 맞습니다. – Gumbo

2

내가 새 일에 이전 페이지에서 사용자를 리디렉션 자바 스크립트 및/또는 (검보에 의해 제안) 메타 새로 고침을 사용할 수있는 것 같아요. 다음과 같음 :

<html> 
<head> 
    <meta http-equiv="refresh" content="0;url=http://YourServer/NewFile.html" /> 

    <script type="text/javascript"> 
    location.replace('http://YourServer/NewFile.html'); 
    </script> 
</head> 
<body> 
    This page has moved. <a href="http://YourServer/NewFile.html">Click here for the new location</a> 
</body> 
</html> 
+1

JS 리디렉션을 사용하는 유일한 이유는 메타 새로 고침을 사용하지 않는 사람들이 많을 것으로 생각됩니다. 이전에 내가 유지 관리하는 사이트에서이 3 단계 리디렉션을 사용했지만 이후 JS 리디렉션을 삭제했습니다. JS를 싫어할 정도로 메타 새로 고침을 싫어하는 사람은 JS가 그렇게하는 것을 싫어할 것입니다. – Stewart