2012-05-02 5 views
0

리디렉션 할 URL에 FROM을 리디렉션하는 URL보다 많은 정보가 포함되어 있으므로 중간에 리디렉션 중간 페이지를 만들려고합니다. htaccess 파일과 함께 짧은 도메인 (hrci.me)을 사용하여 전체 도메인 (현재는 reachchallenges.infectionist.com)으로 리디렉션합니다. 예제는 다음과 같습니다htaccess를 사용하여 이중 리디렉션 방지

hrci.me/ch123

경로, ch123, 그것은 도전 링크 (CH), 그리고 123은 도전의 ID입니다 알려 할 수있는 식별자를 포함한다. 각 챌린지에는 SEO 목적을 위해 URL 끝에 추가하고 싶은 제목이 있습니다. 이 예제 URL 리디렉션 것까지 :

reachchallenges.infectionist.com/challenge/123/Challenge+Title

은 "도전 + 제목"부분은 데이터베이스에 저장되고 도전 ID를 검색 할 필요가있다, 그래서 나는 PHP 스크립트를 작성하여 리다이렉트 자체를 처리했다. 내 htaccess로 규칙은 다음과 같습니다 :

RewriteRule ^ch([0-9]{1,4})(/)?$ redirhandler.php?chid=$1 [L] 

그래서 제목을 얻을 것 ch123이 redirhandler.php로 리디렉션합니다 /로 요청 CHID = 123, 다음/도전에서 다른 도메인으로 리디렉션

/123/도전 + 표제. 문제는 짧은 도메인이 들어오는 모든 요청을 긴 도메인으로 전달하여 원래 경로를 유지하도록 설정했기 때문입니다 (hrci.me/something이 reachchallenges.infectionist.com/something으로 리디렉션 됨). htaccess가 redirhandler.php에 다시 쓰는 것을 처리하면 reachchallenges.infectionist.com/redirhandler.php로 리디렉션됩니다.

기본적으로 경로가 redirhandler.php 인 경우 추가 리디렉션을 무시해야합니다. PHP 스크립트는 나머지를 처리 ​​할 리디렉션. 나는 RewriteCond가 내가 이것을 어떻게 할 것인지 생각하고있다. 그러나 나는 그것을 이해할 수 없다.

+0

짧은 도메인 설정으로 긴 도메인으로 리디렉션되는 방법은 무엇입니까? htaccess 파일에도 있습니까? 그렇다면 퍼즐의 중요한 부분 인 질문에 추가 할 수 있습니다. – baynezy

+0

예 짧은 도메인 리디렉션이 htaccess에 설정되었습니다. – HaLo2FrEeEk

답변

0

모두 긴 도메인에 대한 수신 요청은/ch * 요청에 대한보다 구체적인 규칙보다 .htaccess 파일에서 더 높습니다. 보다 일반적인 규칙 앞에 구체적인 규칙을 넣어보십시오.

+0

모든 요청을 리디렉션하는 규칙은 파일의 마지막 규칙이며 다른 모든 규칙은 [L] 플래그를 지정합니다. – HaLo2FrEeEk

+0

redirhandler와 일치시키고 명시 적으로 아무 것도하지 않는 규칙일까요? 대체 하이픈 하나만 사용하면됩니다. –

+0

나는 그것을 이해했다. 요청 URI가 redirhandler.php라면 리디렉션을 무시하는 RewriteCond를 추가했습니다. 도와 주셔서 감사합니다. – HaLo2FrEeEk

관련 문제