@ Винко
Что касается вашего общего подхода, я не уверен, почему вы решили ограничить длину TLD в своем регулярном выражении? Это не очень перспективно, и я не уверен, какую пользу это дает? На самом деле это даже не «теперь доказательство», потому что есть по крайней мере один 6-символьный TLD (.museum), который не будет соответствовать.
Мне кажется, это не нужно. Не могли бы вы просто сделать ^[^.]+\.[^.]\+$
? (примечание: знак вопроса является частью предложения, а не регулярного выражения!)
Помимо этого, существует более серьезная проблема с этим подходом: он не работает для доменов, которые не находятся непосредственно под TLD. Это домены в Австралии, Великобритании, Японии и многих других странах, которые имеют иерархии: .co.jp, .co.uk, .com.au и т. Д.
Независимо от того, имеет ли это какое-либо отношение к ФП, я не знаю, но это то, что нужно знать, если вы ищете ответ "исправить все".
ОП еще не дал понять, хочет ли он универсальное решение или решение для одной (или небольшой группы) известных областей. Если это последнее, см. Мою другую заметку об использовании подхода Zigdon. Если это первое, то перейдите к подходу Винко с учетом информации в этом посте.
Редактировать: Одна вещь, которую я оставил до сих пор, которая может или не может быть вариантом для вас в бизнесе, это пойти другим путем. Все наши сайты перенаправляют http://www.domain.com на http://domain.com. Люди по адресу http://no -www.org приводят довольно веские доводы (ИМХО), что это «правильный» способ сделайте это, но это все еще определенно просто вопрос предпочтений. Хотя одно можно сказать наверняка, гораздо проще написать общее правило для такого типа перенаправления, чем это.