This is my readability preference, but I think this would be easier to grok with some little helper methods. Perhaps something like:

```ruby
!whitelisted?(url.host) && !whitelisted?("#{url.host}:#{url.port}") && blacklisted?(url.path)
```