2017-12-05 7 views
1

가장 좋은 방법은 무엇인지 찾으십시오.Apache2 conf redirect

#homepage 
Redirect 301/https://www.mynewsite.org 

#rest of pages 
Redirect 301 /old/page/location1 https://www.mynewsite.org/some/new/page1 
Redirect 301 /old/page/location2 https://www.mynewsite.org/another/new/page/here 

그래도 난 할 리디렉션의 톤이 (100 +) :

나는이 개 도메인

oldsite.commynewsite.comoldsite.com 아파치 설정 파일에 다음을 추가 있습니다. 가능한 한 깔끔하게 유지하는 것. 이를위한 최상의 방법을 찾고 있습니다. 어떤 날 mynewsite.com가 바뀌 었다고 말하십시오. conf 파일에서 한 위치 만 업데이트 할 수 있기를 바랍니다.

답변

1

예전 도메인에서 Apache 설정을 제어 할 수있는 것처럼 보입니다.

수천 개의 리디렉션 요구 사항에 RewriteMap을 사용하는 것이 더 좋습니다.

  1. 추가 다음 줄을 당신의 httpd.conf 파일에 정의하는 RewriteMap :

    /old/page/location1 /new/pag1 
    /old/page/location2 /new/pag2 
    // 
    
  2. :

    RewriteMap redirMap txt://full/path/to/redirects.txt 
    
  3. 이 같은 /full/path/to/redirects.txt 같은 텍스트 파일을 만들고 여기에 당신이 그것을 사용하는 방법입니다

  4. 아파치 설정 또는 vhost 설정 또는 사이트 루트에 다음 줄을 추가하십시오 .htaccess :

    mynewsite.com 꽤 편리
    Options +FollowSymLinks 
    RewriteEngine on 
    
    RewriteCond ${redirMap:$0} . 
    RewriteRule .* https://www.mynewsite.org${redirMap:$0} [L,R=301,NE] 
    

는 하나의 규칙 만에 도메인 이름을 변경해야합니다 로 언젠가 요구 사항을 변경합니다.

+1

이것은 작동합니다. 감사! 다른 질문으로 다음과 같이 사용할 수 있습니다 : 'RedirectMatch 301^(. *) $ https : // www.mynewsite.org' 하지만이 설정을 사용하면 설정 한 다른 모든 리디렉션이 루트 (홈페이지). 이 방법이 있는지 궁금하고 수동 리디렉션도 작동해야합니다. – Josh

+0

'redirect.txt' 파일에 모든 리디렉션을 보관하는 것이 좋습니다. 그러나 다른 '301'리디렉션을 유지하는 유스 케이스가 있다면 ** **이 규칙 이후에 ** 리디렉션을 유지하십시오. 그리고 RedirectMatch 301^(. *) $ https : // www.mynewsite.org는 모든 것을 일치시킬 것이므로 맨 마지막에 확실히 보관하십시오. – anubhava

+1

완벽 함, 그 경우를 확인하고 싶었습니다. 모든 것에 다시 한 번 감사드립니다. – Josh

관련 문제