2011-12-06 4 views
2

CFWheels에는 제공된 인수를 기반으로 내부 URL을 가져 오는 URLFor() 함수가 있습니다. 인수를 제공하지 않고 내부 URL을 가져 오는 방법이 있습니까?다시 작성한 페이지의 CFWheels URL을 어떻게 얻습니까?

예 : 사용자가 "http://somedomain.com"또는 "http://somedomain.com/about/"또는 "http://somedomain.com/contact/"로 이동하면 "/"또는 "/ about /"또는 "/ contact /"과 같은 것을 반환하는 ReWrittenURL() 같은 메서드? "/ 홈/색인"또는 "/ 약/인덱스"또는 "/ 연락처/색인"인수 반환과 URLFor의()를 사용

.

CGI.SCRIPT_NAME 반환 "/rewrite.cfm"자바 스크립트와 분명히

내가 난 후 무엇을 얻을 수 document.location.href 사용.

답변

5

CGI.path_info에 원하는 값이 있습니까? 처음에는

편집

, 나는이 게시물을 삭제, 완전히 혼동된다. 이제 약간의 테스트를 마쳤습니다. - 최신 휠 코어 파일 (1.1.6)을 다운로드하고 IIS 7.5 (URL 재 작성 모듈이 설치된) + CF9 웹 서버에 압축을 풀어 핵심 "web.config"파일을 편집했습니다 루트, 재사용 규칙에 대해 "enabled = 'true'"로 설정하십시오. 또한 하위 폴더에서이 예제를 실행했기 때문에 "/rewrite.cfm"에서 "rewrite.cfm"으로 경로를 변경했습니다. 이것은 내가에 성공적으로 다음과 같은 URL을 요청할 수 있었던 점에 저를 얻었다 :

<cfdump var="#cgi#"> 

경우 : 여기에서

http://server/wheelstest/wheels/wheels

, 나는 추가,보기/바퀴에서 layout.cfm 편집 위의 URL (/ wheelstest/wheels/wheels)을 요청하면 cgi 범위에 대한 덤프가 표시됩니다. path_info 아래의 값은/wheels/wheels입니다.

다음으로 뷰/휠 아래에 빈 "index.cfm"파일을 추가했습니다.

내가/wheelstest/바퀴를 요청

, 나는 PATH_INFO이 얻을 : "/ 바퀴".

내가/wheelstest/바퀴를 요청

는/나는 PATH_INFO이 얻을 : "/ 휠 /". 내가/wheelstest/휠/인덱스를 요청하면

, 나는 PATH_INFO이 얻을 : "/ 휠/인덱스를".

내가 요청

/wheelstest/휠/색인/I가 PATH_INFO이 얻을 : "/ 휠/색인 /".

그래서 기본적으로 - cgi.path_info은 당신이 원하는 무엇을 설명 정확히 나를 위해하고있다. 광산보다 설치가 다른 점은 그 값을 반환하지 않는다는 것입니다.

+0

아니요. PATH_INFO는 "/rewrite.cfm"을 반환합니다. – Micah

+0

매우 이상합니다. 어때 cgi.query_string? –

+0

아니요. cgi.query_string이 비어 있습니다. – Micah

3

이렇게하는 것이 더 좋은 방법 일 수 있습니다 ...그러나 여기에서 나는 모든 페이지는 #의 PARAMS을 보내지 어쨌든

을 이동 #

<cfdump var="#params#"> 
    <cfoutput>#params.action#/#params.controller#/#params.key#</cfoutput> 
    <cfabort> 

컨트롤러와 결과

문제가 볼 것을 넣어 시도하는 경우 params 오브젝트 돈 내부의 객체 너는 오류가있다. 따라서 생성 된 경로는 구조체 키가 있는지 확인하고 그에 따라 편집해야합니다.

+0

흥미 롭습니다. 나는 params 객체를 알지 못했습니다. – Micah

+1

답변으로 표시해야합니다. –

+1

사실, 나는 이전의 의견을 되 돌린다. 이 방법이 효과가 있지만 각 변수가 존재하는지 확인해야합니다. 또한 최악의 경우는 경로가있는 URL에 대해서는 작동하지 않습니다. –

관련 문제