Окончательный универсальный субдомен .htaccess с подстановочными знаками, переписанный на www. - это в силе?

Я думаю, что достиг святого Грааля общего перенаправления субдоменов с подстановочными знаками после того, как целый день ходил по кругу, борясь с ошибками «слишком много перенаправлений». Похоже, он работает с любым доменом и поддоменом, единственная часть, которую вам нужно указать, — это список возможных допустимых суффиксов, например, .com|.com.au|.co.uk и т. д. Этот код примет *yourdomain.suffix для любого домена и превратит его в http://www.yourdomain.suffix, но только для действительных поддоменов, которые могут существовать на самом деле. Вы можете иметь столько последовательностей anything.anything-anything.anything-anything-anything.anything. перед yourdomain.com, сколько хотите, и все они превратятся в www. Теперь он кажется отлично работающим, но я ни на йоту не доверяю этому садистскому языку регулярных выражений. У меня нет абсолютно никакой возможности узнать, действителен ли этот код, вызовет ли он проблемы с сервером или сбой при каких-то важных обстоятельствах. Может ли кто-нибудь помочь проверить или улучшить его?

Вот:

RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9]+[a-zA-Z0-9\-]*[a-zA-Z0-9]+[\.]{1}|[a-zA-Z0-9]+[\.]{1})*([a-zA-Z0-9]+[a-zA-Z0-9\-]*[a-zA-Z0-9]+|[a-zA-Z0-9]+)\.(com|com[\.]{1}au)?$ [NC]
RewriteCond %{HTTP_HOST} !^www\.([a-zA-Z0-9]+[a-zA-Z0-9\-]*[a-zA-Z0-9]+|[a-zA-Z0-9]+)\.(com|com[\.]{1}au)?$ [NC]
RewriteRule .? http://www.%2.%3%{REQUEST_URI} [R=302,NC,L]

Примечание. Причина, по которой он такой длинный, заключается в том, что я пытаюсь учесть возможность использования тире в частях основного домена или поддомена. Итак, anything-anything.youdomain.com. Но я читал, что в доменных именах нельзя использовать тире без хотя бы одного буквенно-цифрового символа между тире и любой точкой. Таким образом, www.anything-.yourdomain.com или www.-anything.yourdomain.com являются недействительными и должны быть отклонены. Если бы мне не нужно было это учитывать, регулярное выражение для первых двух строк было бы намного проще: оно могло бы просто начинаться с:

RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9\-]+[\.]{1})*([a-zA-Z0-9\-]+)\.(com|com[\.]{1}au)?$

person Sergio    schedule 24.11.2019    source источник
comment
Похоже, серверу предстоит проделать большую работу по каждому отдельному запросу. Кажется, это работает с любым доменом и поддоменом. Вопрос в том, когда вам действительно нужно что-то настолько широкое?   -  person 04FS    schedule 24.11.2019
comment
Возможный дубликат Как я могу перенаправить поддомены в .htaccess к www. с общими параметрами?   -  person Anonymous    schedule 24.11.2019