요청 리퍼러 경로를 얻는 방법은 무엇입니까?


82

리퍼러의 경로가 필요합니다. 나는 도메인 이름을 원하지 않습니다. 예를 들어, 참조자가 http://www.google.com/adsenseI want 인 경우 /adsense.

답변:


138

request.referer문자열을 반환하지만 Ruby의 URI 모듈 을 사용 하여 래핑 한 다음 경로를 요청하면됩니다.

if URI(request.referer).path == '/adsense'

4
해당 URI (request.referer) 줄을 사용하고 있으며 URI :: InvalidURIError : bad URI (is not URI?) error가 계속 발생합니다. 이게 뭔지 아세요?
— kateray 2012

더 많은 정보 없이는 그것이 무엇인지 말하기 어렵습니다. request.refererRuby가 왜 그것을 좋아하지 않는지 확인하기 위해 로그에 인쇄 해보 십시오. (PS : 당신은 오히려 다른 질문에 대한 답에 주석으로보다 별도의 문제로 질문을 할 수 있습니다. :-))
— chadoh

1
에 대해 자세히 알아 보려면 이 질문 을 확인하십시오 URI::InvalidURIError.
— James Chevalier

이상하게도 리퍼러는 비어 있지 않더라도 유효하지 않은 URI 일 수 있습니다. URI :: InvalidURIError를 발생시킨 '|'를 포함하는 리퍼러로 이것을 발견했습니다. 시작 / 구조 / 종료 블록에 URI.Parse를 래핑하고 있습니다.
— tomf

28

리퍼러에 액세스 할 수 있습니다.

request.referer

3
그러나 참조자는 전체 URL을 제공합니다. 나는 경로가 필요합니다
— rails101 2011-04-28

2
유용한 링크 @Fivell에 감사드립니다. 나는 미래의 방문자가 링크 부패에 시달리지 않도록이 스레드 자체에 정보를 담은 답변을 추가했습니다.
— chadoh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.