Os URLs tendem a ser muito longos e conter caracteres que, naturalmente, impediriam que eles fossem hifenizados, ainda que eles não fossem normalmente definidos em \ttfamily, verbatim. Portanto, sem tratamento especial, eles produzem, com frequência, \hboxes descontroladamente superlotados, e a representação tipografada deles fica horrível.
Existem três pacotes que ajudam a resolver este problema:
\path.
  O comando define cada candidato a caractere de quebra como 
  \discretionary, oferecendo ao usuário a oportunidade de especificar uma lista pessoal de possíveis caracteres de quebra. Sua principal desvantagem é a fragilidade nos argumentos móveis do LaTeX. As
  macros do Eplain — definem um comando \path similar.
O Path, embora funcione em situações simples, não faz nenhuma tentativa de funcionar com o LaTeX (é irremediavelmente frágil). Apesar de sua longa e honrosa história, não é mais recomendado para uso em LaTeX.
\url (entre outros, incluindo seu próprio comando \path ). O comando dá a cada potencial caractere de quebra uma ‘personalidade’ de modo matemático e, em seguida, define a própria URL (na fonte de escolha do usuário) no modo de matemática. Ele pode produzir comandos ‘robustos’ (estilo LaTeX-style) 
  (see uso do \protect) para ser usado dentro de argumentos móveis.
  O pacote normalmente ignora espaços no URL, mas, infelizmente, URLs que contêm espaços existem; para escrevê-las, use o pacote com a opção obeyspaces. Duas outras opções úteis permitem quebras de linha no URL em posições onde elas são normalmente suprimidas para evitar confusão:
  spaces , para permitir quebras em espaços (observe que isto requer o
  obeyspaces também), e hyphens , para permitir quebras depois de hífens. (Observe que o pacote  nunca faz hifenização “normal” de nomes dentro de um URL.)
É possível usar o pacote url em Plain TeX, com a assistência do pacote miniltx (que foi originalmente desenvolvido para a utilização do pacote de gráfico do LaTeX no Plain TeX). Um pequeno ‘patch’ também é necessário; portanto, a sequência necessária é:
\input miniltx
\expandafter\def\expandafter\+\expandafter{\+}
\input url.sty
O pacote O autor desta resposta prefere o pacote url (bem mais novo), direta ou indiretamente; tanto o path quanto o url funcionam bem com o Plain TeX (embora, é claro, os sofisticados recursos LaTeX do url não tenham muito lugar lá). (hyperref não está disponível em uma versão para ser usada com o Plain TeX.)
Note que nem o \path (do pacote path) nem o \url (do pacote url) é robusto (no sentido do LaTeX). Se você precisar colocar um URL em um argumento móvel, você vai precisar do comando
\urldef do pacote url.  Então, alguém poderia escrever:
\urldef\faqhome\url{http://www.tex.ac.uk/faq}
depois do qual, o \faqhome é robusto.
A documentação dos pacotes path e url está nos arquivos do pacote.
This question on the Web: http://latex.net.br/faq/FAQ-setURL.html
Do you have any question? Ask on: latex.net.br - we love qood questions!