Use CONTAINS instead of FREETEXT.
SELECT * FROM Test WHERE CONTAINS(test, 'example.com')
FREETEXT will treat example.com
as if it is example OR com
which explains why your FREETEXT query for example.com matches url.com. It will also match inflectional forms (examples, exampling...) and synonyms which would likely cause other problems for you.
If you still need the flexibility of FREETEXT for your other search terms you could use both functions:
SELECT * FROM Test WHERE CONTAINS(test, 'example.com') and FREETEXT(test, 'some other text')