code: def raise_on_self_redirect(self, params, cdx, status_code, location_url):
          
          if cdx.get('is_live'):
              return
  
          if not status_code.startswith('3') or status_code == '304':
              return
  
          request_url = params['url'].lower()
          if not location_url:
              return
  
  
          location_url = location_url.lower()
          if location_url.startswith('/'):
              host = urlsplit(cdx['url']).netloc
              location_url = host + location_url
  
          location_url = location_url.split('://', 1)[-1].rstrip('/')
          request_url = request_url.split('://', 1)[-1].rstrip('/')
  
          self_redir = False
  
          if request_url == location_url:
              self_redir = True
          elif params.get('sr-urlkey'):
              # if new location canonicalized matches old key, also self-redirect
              if canonicalize(location_url) == params.get('sr-urlkey'):
                  self_redir = True
  
          if self_redir:
              msg = 'Self Redirect {0} -> {1}'
              msg = msg.format(request_url, location_url)
              params['sr-urlkey'] = cdx['urlkey']
              raise LiveResourceException(msg)
docs: Check if response is a 3xx redirect to the same url
          If so, reject this capture to avoid causing redirect loop