Как перенаправить не-www на www без жесткого кодирования с использованием.htaccess?

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

... вызывает совершенное, не жесткое перенаправление 301 с "www на non-www", как будет выглядеть прямо противоположное?

РЕДАКТИРОВАТЬ:

Согласно сообщению Prix, я изменил .htaccess файл к следующему:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
  RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
</IfModule>

Как уже упоминалось, это перенаправляет на http://www./ к несчастью. Кто может помочь?

4 ответа

Решение

У Прикс почти это было. Когда вы отрицаете RewriteCond!) это не захватывает так %1 пустой. Два возможных решения:

фиктивный RewriteCond:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)$ [NC]
RewriteRule ^/(.*)$ http://www\.%1/$1 [R=301,L]

%{HTTP_HOST} в RewriteRule:

RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
RewriteRule ^/(.*)$ http://www\.%{HTTP_HOST}/$1 [R=301,L]

В итоге, чистая, проверенная версия кода:

Это работает (для меня), чтобы перенаправить www на не-www

RewriteEngine On
RewriteCond% {HTTPS}! = Вкл
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ Http://%1/$1 [R=301,L]

Любая из этих работ (для меня) перенаправить не-www на www

RewriteCond %{HTTP_HOST}!^ Www \. (. +) $ [NC]
RewriteRule ^ (. *) $ Http://www\.%{HTTP_HOST}/$1 [R=301,L]

или же

RewriteCond %{HTTP_HOST}!^ Www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)$ [NC]
RewriteRule ^(.*)$ Http://www\.%1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.(.+)$ [NC]
RewriteRule ^(.*)$ http://www\.%2/$1 [R=301,L]

! означает, что если он не начинается с "www...", то отправьте его на www.%1 какой (.+)

Следующее всегда работало для меня с Apache 2:

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
Другие вопросы по тегам