Это изменится domain.com
на www.domain.com
:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Как мне заменить часть «домен», чтобы это работало на любом домене?
Это изменится domain.com
на www.domain.com
:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Как мне заменить часть «домен», чтобы это работало на любом домене?
Ответы:
Я бы использовал это правило:
RewriteEngine On
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Первое условие проверяет, не является ли значение Host пустым (в случае HTTP / 1.0); второй проверяет, не начинается ли значение Host с www.
; третий проверяет HTTPS ( %{HTTPS}
либо on
или off
, так что %{HTTPS}s
либо ons
или , offs
и в случае подобран). Подстановочная часть просто объединяет информационные части в полный URL.ons
s
RewriteRule
RewriteEngine On
в качестве первой строки, чтобы завершить его, так как это может привести к ошибке сервера 500, если скопировать как есть.
Это сделает это:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Если вы хотите перенаправить все запросы, не относящиеся к www, на ваш сайт, на версию с www, все, что вам нужно сделать, это добавить следующий код в ваш файл .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Это не будет работать с поддоменами.
domain.com правильно перенаправляется на www.domain.com
но
images.domain.com перенаправляется на www.images.domain.com
Вместо того, чтобы проверять, является ли субдомен «не www», проверьте, есть ли две точки:
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\.(.*)\. [NC]
(Строго говоря, ваш домен верхнего уровня остается, .uk
а ваш домен остается something.co
.)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
Это перенаправляет example.com
на www.example.com
исключение поддоменов.
Это старый вопрос, и есть много разных способов сделать это. Самый полный ответ, ИМХО, можно найти здесь: https://gist.github.com/vielhuber/f2c6bdd1ed9024023fe4 . (Вставка и форматирование кода здесь у меня не сработали)
это сработало для меня как по волшебству
RewriteCond% {HTTP_HOST} ^ sitename.com [NC] RewriteRule ^ (. *) $ Https://www.sitename.com/ $ 1 [L, R = 301, NC]
RewriteCond %{HTTP_HOST} ^yourdomain.com [NC]