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


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.