2009-03-29 7 views
1

www.codinghorror.com으로 가면 자동으로 www.codinghorror.com/blog간단한 웹 사이트 리디렉션은 어떻게 구현합니까?

으로 리디렉션됩니다. 어떻게 "/ blog /"로 리디렉션됩니까?

저는 Dreamhost Shared Hosting을 사용하고 있습니다. 따라서 서버 구성 옵션이 제한적입니다. mod_rewrite를하고 상황에 맞는 권한의 사용을 허용하는 아파치를 가정

+0

저는 Dreamhost 사용자가 아니며 지식 기반 영역은 가입자 전용이므로 제공하는 내용에 대해서는 잘 모릅니다. 즉, Apache를 실행합니까? 그들은 .htaccess 파일을 넣을 수있게합니까? 어떤 서버 측 프로그래밍 언어를 사용할 수 있습니까? – Guss

답변

2

, 당신은 가상 호스트 설정 또는 htaccess로에 넣고 :

RewriteEngine on 
RewriteRule ^$ /blog/ 
2

한 가지 방법은 클라이언트에 '위치'헤더를 보내는 것입니다. 다음은 PHP의 예입니다 : 있기 때문에

RedirectPermanent//blog 

아마 많은 가지가 있습니다

<?php 

header('Location: http://www.codinghorror.com/blog'); 

?> 
3

또 다른 옵션은 (htaccess로 또는 하나의 httpd.conf를) 영구 리디렉션을 수행하는 아파치 mod_alias가를 사용하고 있습니다 서버 및 프로그래밍 언어 (아마 그 이상). 특정 기술을 어떤 용도로 사용하는지 알려 주시면보다 구체적인 답변을 드릴 수 있습니다.

6

이것은 HTTP 상태 코드에 대해 스스로를 가르 칠 수있는 좋은 기회입니다. HTTP 1.1 사양의 status code definitions section을 읽으십시오. 섹션 10.3, "Redirection 3xx"는 질문과 관련된 상태 코드를 다룹니다. HTTP 3xx 코드를 알면 의도 한 의미와 정확히 일치하는 응답을 보낼 수 있습니다. 예를 들어 으로 리디렉션하려는 경우 항상이 발생하면 HTTP 301, "Moved Permanently"을 사용할 수 있습니다. 이론적으로 클라이언트는 HTTP 301 응답을 신호로 사용하여 이전 URL 대신 새 URL 값을 저장할 수 있습니다.

Dreamhost의 구성 옵션은 숨겨진 .htaccess 파일에 많은 Apache 웹 서버 구성 지정 문을 지정할 수 있으므로 생각만큼 제한되지 않습니다. 이 파일은 웹 문서 디렉토리에 있어야합니다. 예제를 사용하여 .htaccess 파일은 Apache가 서비스하는 디렉토리에 배치 할 수 있지만 루트 웹 문서 디렉토리 /home/midas/codinghorror/에 배치합니다. 파일 이름에 앞에 오는 점을 포함해야합니다. 내용은 이미 언급 한 mod_alias 예제 또는 mod_rewrite 예제 중 하나입니다.

mod_alias의 RedirectPermanent 지시어는 HTTP 301 상태 코드를 보냅니다. 당신은 코드없이 [R]을 사용하는 경우

RewriteEngine on 
RewriteRule ^$ /blog/ [R=301] 

, 다음 HTTP 302 ("일시적으로 이동") 사용 :이 작업을 수행 할 mod_rewrite를 사용하고자하는 경우에는 상태 코드를 지정할 수 있습니다.

PHP도 사용할 수 있으므로 옵션이 될 수도 있습니다. 물론 위의 .htaccess 옵션을 사용하는 것이 더 빠를 수도 있습니다. index.php라는 파일을 /home/midas/codinghorror/에 넣고 위의 Jeremy Ruten이 제공 한 코드를 사용합니다. 다시 말하지만, 당신은) (헤더 세 번째 인수에 상태 코드를 지정할 수 있습니다

<?php 
header('Location: http://www.codinghorror.com/blog', TRUE, 301); 
?> 

를 그렇지 않으면 HTTP 302 상태 응답을 보내는 '위치'기본값으로 PHP의 헤더() 함수를 사용하여.

관련 문제