Це зміниться 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); другий перевіряє, чи не починається значення Хост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]
(Строго кажучи, ваш TLD все ще є, .uk
а ваш домен something.co
.)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
Це переспрямування example.com
на www.example.com
виключення субдоменів.
Це питання старіше, і існує багато різних способів зробити це. Найповнішу відповідь, IMHO, можна знайти тут: 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]