2012-05-22 3 views
6

원래 쿼리 문자열을 사용하여 빌드 된 사이트에 적절한 301 리디렉션을 만들기 위해 고심하고 있습니다. 오래된 URL 구조는 다음과 같습니다301 리디렉션에서 쿼리 문자열 제거

http://www.oldsite.com/about/index.cfm?fuseaction=cor_av&artID=5049 

나는 새 도메인에 새로운 페이지 ('정보'라는 이름의) 전체 하위 폴더를 리디렉션 할.

http://www.newsite.com/info 

그래서, 나는 다음과 같습니다 리디렉션 설정 : 새로운 도메인의 URL은 다음과 같습니다

redirectMatch 301 ^/about/ http://www.newsite.com/info 

그것은 잘 리디렉션됩니다,하지만 그래서, 첨부 된 원래의 URL 문자열을 유지하는 것 새로운 URL은 브라우저에서 다음과 같이 찾고 끝 :

http://www.newsite.com/info/?fuseaction=cor_av&artID=5049 

나는 확실히이 문제를 해결하는 방법을 알고 하다며 아파치/(301) 전문가의 부족입니다. 나는 단지 모든 것을 벗기고 싶다. 에.

정말 감사드립니다.

답변

28

두 가지 옵션 :

redirectMatch 301 ^/about/ http://www.newsite.com/info? 

나 : 마지막에

RewriteEngine on 
RewriteRule ^about/(.*) http://www.newsite.com/info? [L,R=301] 

물음표 중요한 비트 것으로 보인다. 두 번째는 조금 청소기 oldsite.com에 지정된 .htaccess에이 코드를 추가 할

+0

고마워요! 그것은 나를 위해 일했다. – Ash

+3

Apache> = 2.4에서 끝 물음표를 추가하는 대신 QSD 플래그를 사용할 수 있습니다. 'RewriteRule^about/(.*) http://www.newsite.com/info ['QSD', L , R = 301]' –

0

시도 (먼저 URL의 끝에 물음표를 남긴다) 같습니다

RewriteCond %{REQUEST_URI} ^/about/index.cfm$ 
RewriteRule ^(.+) http://www.newsite.com/info/ [R=301,QSA] 

는 후속?

+1

아니요, 'QSA' ** a **는 새 URL에 이전 쿼리 문자열을 보냅니다. ** iscard itcard하려면, 플래그를'QSD' (apache> = 2.4)로 사용하거나 허용 된 답과 같이'?'를 추가하십시오. [Apache RewriteRule Flags] (http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa)를 참조하십시오. – dennis

관련 문제