Возможный дубликат:
Все, что вы когда-либо хотели знать о правилах Mod_Rewrite, но боялись спросить?
Ниже код добавляет www. на любой URL-адрес, который не начинается с него:
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://www.%2%{REQUEST_URI} [L,R=301]
Однако я хочу, чтобы он делал это только , когда URL-адрес имеет формат:
something.com
Если URL-адрес такой:
something.something.com
Я делаю не хочу, чтобы правило добавляло www.
Как мне это изменить?
Изменение
RewriteCond %{HTTP_HOST} !^www\.
Кому:
RewriteCond %{HTTP_HOST} !(^www\.|\..+\.)
Другими словами, измените свое условное выражение от поиска "www" к поиску www или поиску двух точек.
Хотя, учитывая описание проблемы это, вероятно, работало бы также и имеет преимущество того, чтобы быть более простым:
RewriteCond %{HTTP_HOST} !\..*\.
Проблема могла, вероятно, быть описана лучше, поскольку "переписывают любой хост только с одной точкой для предварительного ожидания "www"..