Для меня только это сработало:
\PassOptionsToPackage{hyphens}{url}
\usepackage{hyperref}
и с помощью этого кода добавлять разрывы строк после каждого нормального алфавитного символа и с помощью * - ~ '":
\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks% save the current one
\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
\do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
\do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D%
\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N%
\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X%
\do\Y\do\Z\do\*\do\-\do\~\do\'\do\"\do\-}%
ответ составлен с этого сайта:
https://tex.stackexchange.com/questions/3033/forcing-linebreaks-in-url/10401