2016-07-04 2 views
2

후행하지 않고 301 리디렉션 : 내가 원하는 일을htaccess로 또는 나는 일부 URL이처럼 보이는이 슬래시

redirect 301 /some/old/url/ http://example.com/url 
redirect 301 /some/old/test/ http://example.com/test 

이 같은 종류의 것입니다 :

redirect 301 /some/old/[word-match-with-or-without-trailing-slash] http://example.com/[same-word-without-trailing slash] 

어떻게해야합니까

? 문제 :

  1. 슬래시가 있거나 모두 일치하지 않습니다.
  2. 나중에 사용할 수 있도록 슬래시없이 일치를 유지하십시오 (다음 참조).
  3. 줄 끝에 일치하는 슬래시를 넣으십시오.

    redirect 301 /some/old/(.*) http://example.com/$1 
    

    하지만 그때는 어떻게 $1에서 가능한 후행 슬래시를 제거 할 수 있습니다 내가 (테스트되지 않은) 같은 것을 할 수 있었던 것처럼

업데이트

보인다? 후행 슬래시를 제거하기 위해 리디렉션

+0

참조 ['Redirect'] (https://httpd.apache.org/docs/current/en/mod/mod_alias.html를 #redirect) : "일치하는 URL 경로 이외의 추가 경로 정보가 대상 URL에 추가됩니다." –

+0

@OlafDietsche 좋아! 가능한 절반의 해결책으로 업데이트로 내 질문을 업데이트했습니다. 거기에 '$ 1'이 있으면, 새 URL에서 사용하지 않기 위해 가능한 종료 슬래시를 어떻게 제거 할 수 있습니까? –

+1

'리디렉션'으로 연결할 수 없습니다. 보다 정교한 수정을 위해서는'RedirectMatch' 또는'RewriteRule'이 필요합니다. –

답변

2

, 당신은 사용할 수 있습니다

RedirectMatch ^/some/old/(.*?)/?$ http://example.com/$1 
+0

작동하는 것처럼 보이지만 상태는 302입니다. 상태 301, 영구적 리디렉션을 사용할 수 있습니까? –

+1

302가 기본 상태입니다. RedirectMatch의 첫 번째 인수로 301 또는 permanent를 추가 할 수 있습니다. – starkeen

+2

@ JensTörnell ['R = 301'] (http://stackoverflow.com/a/9204355/1741542)로 테스트하지 마십시오! –

관련 문제