2010-12-20 3 views
0

최근에 EE2로 업데이트 한 이전 사이트의 URL이 잔뜩 있습니다.
http://www.example.com/old/path.asp?dir=Folder_NameURL의 검색어 문자열 매개 변수를 사용하여 리디렉션

이 URL가 리디렉션해야합니다 : 이러한 URL은 다음과 같이
http://www.example.com/new_path/folders/folder_name

이 모든 Folder_Name 문자열 folder_name URL 세그먼트와 일치하므로이 가장 가능성이 정적 리디렉션해야합니다.

나는 "예 1"라는 새로운 사이트의 페이지에 매핑 "Example_One"라는 특정 폴더에 대해 다음과 같은 규칙을 시도 :

Redirect 301 /old/path.asp?dir=Example_One 
      http://www.example.com/new_path/folders/example1 

하지만이 작동하지 않습니다. 리다이렉트 대신에 나는 단지 http://www.example.com/old/path.asp?dir=Example_One을 찾을 수 없다는 404 오류 메시지를 받는다.

편집 : 보조 문제가 여기에 또는 관련되지 않을 수 너무하는있다
:이처럼 보이는 포괄 규칙이 :
리디렉션 (301) /old/path.asp http://www.example.com/new_path

규칙을 사용하면 위의 첫 번째 요청과 같은 요청은
http://www.example.com/new_path?dir=Folder_Name으로 전달되어 404 오류가 발생합니다.

답변

0

mod_rewrite에 적합한 구문을 찾기 위해 Google을 조금 더 조사해야했습니다. - EE는 쿼리 문자열에서 하나 개의 매개 변수와 404ing되는 이유에, 그 문제가 여전히 미해결이지만,이 같이 작동

RewriteCond %{QUERY_STRING} ^dir=Example_One$ 
RewriteRule ^/old/path\.asp$ /new_path/folders/example1? [R=301,L] 

이 위의 두 가지 문제가 해결 위의 예제를 사용

그 문제의 해결 방법.

매개 변수가 매번 다른 값을 가질 수있는 특정 페이지로 URL을 리디렉션 할 수도 있습니다.

가 링크 : http://www.example.com

: http://www.example.com/?utm_source=xxx& .....
가 (404 트리거) 리디렉션해야 이것의 한 예는 (추적 쿼리 문자열이 404 트리거이 같은 상황에서) 추적 구글 UTM 캠페인입니다
RewriteCond %{QUERY_STRING} ^utm_source= 
RewriteRule ^$ http://www.example.com? [R=301,L] 

참고 :^$에 정의 된대로 요청을 홈페이지로 리디렉션합니다. utm 요청을 다른 페이지로 리디렉션하려면 해당 RewriteRule의 첫 번째 부분을 변경해야합니다.

+0

다른 검색어 문자열 매개 변수 (예 : http://www.example.com/old/path.asp?dir=Example_One&a=b)가있는 경우^dir = Example_One $이 (가) 작동하지 않습니까? –

관련 문제