.htaccess правила перезаписи [дубликат]

Возможный дубликат:
Все, что вы когда-либо хотели знать о правилах 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.

Как мне это изменить?

0
задан 13 April 2017 в 15:14
1 ответ

Изменение

RewriteCond %{HTTP_HOST} !^www\.

Кому:

RewriteCond %{HTTP_HOST} !(^www\.|\..+\.)

Другими словами, измените свое условное выражение от поиска "www" к поиску www или поиску двух точек.

Хотя, учитывая описание проблемы это, вероятно, работало бы также и имеет преимущество того, чтобы быть более простым:

RewriteCond %{HTTP_HOST} !\..*\.

Проблема могла, вероятно, быть описана лучше, поскольку "переписывают любой хост только с одной точкой для предварительного ожидания "www"..

1
ответ дан 4 December 2019 в 23:08
  • 1
    К сожалению, оба тех изменения все еще пытаются добавить www. к любому URL –  psynnott 1 April 2010 в 11:29

Теги

Похожие вопросы