2012-10-05 3 views
0

Google의 경우 해당 페이지에 대한 오래된 링크가 많은 사이트가 있습니다.CFM 리디렉션 301

/mainpage.cfm?linkId=84&LinkType=mainlink 

301 htaccess로 리디렉션하고 싶지만 아무것도 시도하지 않습니다.

RewriteEngine On 

RewriteCond %{REQUEST_URI} ^/architectural 
RewriteRule .* /mainpage.cfm?linkId=84&LinkType=mainlink 

모든 아이디어는.

답변

-1

당신은 대신 ColdFusion 페이지 내에서 리디렉션을 수행 할 수 있습니다. mainpage.cfm 파일의 맨 위에 다음 행을 추가하기 만하면됩니다 (해당 페이지의 모든 요청을 리디렉션하려는 경우). URL 매개 변수에 따라 특정 linkId 및/또는 LinkType 만 리디렉션하려는 경우 일부 조건 논리를 추가 할 수 있습니다.

<cflocation url="http://host/architetural" statusCode="301" addtoken="no"> 

: 당신이 리디렉션 할 mainpage.cfm에 대한 모든 요청을하려면

다시 말하지만, 단지 (당신이 리디렉션 된 페이지의 URL을 변경해야참고) 해당 파일의 상단에이를 추가 statusCode 속성이 ColdFusion 8에 추가되었으므로 실행 중이어야합니다.

+0

고마워요.하지만 cfm 사이트가 enywhere를 가지고 있지 않습니다. 사이트가 사라졌습니다. 동일한 도메인 이름으로 이전 링크를 리디렉션하지 않기 위해 새 사이트의 아파치가 필요합니다. –

+0

.htaccess를 사용할 수있는 경우 올바른 도구 작업을위한 올바른 도구가 아닌) 앱 서버에서 작업하는 것이 좋지 않음을 제안합니다. –

0

귀하의 질문에 약간의 분노가 있습니다. 당신은 당신이/mainpage.cfm?linkId=84&LinkType=mainlink에서 를 다시 작성하고 싶은 말은,하지만 당신은 또한이 당신한다 RewriteRule의 대상으로 그. 그래서 나는 어떤 선들이 어딘가에 교차되어 있다고 생각한다. 질문을 업데이트하여 "[현재 URL 예제]를 [첫 번째 URL을 끝내기를 원하는 URL]로 다시 쓰고 싶습니다." 또한 RewriteCond와 패턴의 변형이 필요할 수있는 다른 고려 사항.

다음 우리가 규칙을 얻을 수/조건을 정리.

질문에 답하기 위해 정확한 질문에 답할 때 과 일치하지 않으므로 RewriteCond는 /mainpage.cfm?linkId=84&LinkType=mainlink을 거부합니다.

그러나 나는 mod_rewrite를 RewriteRule의에서

0

는 디렉토리와 파일 URI의 일부가 아닌 쿼리 문자열을 볼 수 있습니다 ...이 하지 물어 의미 질문입니다 생각한다. 따라서 쿼리 문자열을 일치 시키려면 RewriteCond를 사용해야합니다.

RewriteCond %{QUERY_STRING}   linkId=(\d+)&LinkType=mainlink [NC] 
RewiteRule ^mainpage\.cfm    newpage.php?linkid=%1 [NC,L] 

는 I 이것이한다 RewriteCond 그룹에서 일치하는 구문 그대로 I는 다음에 RewriteRule의 % 1을 참조한다 RewriteCond에 linkID를 일치했다.

@AdamCameron가 지적 하듯이 당신이 리디렉션 할 위치를 명시하지 않지만, 이것은 당신에게 그것을 resove 할 수있는 도구를 제공합니다.