Apache перенаправить с не www на www - PullRequest
195 голосов
/ 09 июля 2009

У меня есть веб-сайт, который не перенаправляется с не-www на www.

Моя конфигурация Apache выглядит следующим образом:

RewriteEngine On
### re-direct to www
RewriteCond %{http_host} !^www.example.com [nc]
RewriteRule ^(.*)$ http://www.example.com/$1 [r=301,nc] 

Что мне не хватает?

Ответы [ 22 ]

0 голосов
/ 14 мая 2014

У меня просто такая же проблема. Но решено с этим

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

Это правило перенаправления не-www на www.

И это правило для перенаправления www на не-www

RewriteEngine On RewriteCond %{HTTP_HOST} !^my-domain\.com$ [NC] RewriteRule ^(.*)$ http://my-domain.com/$1 [R=301,L]

См. http://dense13.com/blog/2008/02/27/redirecting-non-www-to-www-with-htaccess/

0 голосов
/ 22 сентября 2015

У меня была похожая задача на WP Multisite, где правило перенаправления должно было быть общим (для любого домена, который я бы добавил в сеть) Я решил сначала добавить подстановочный знак в домен (припаркованный домен). Обратите внимание . после .com.

CNAME * domain.com.

А затем я добавил следующие строки в файл .htaccess в корне моего мультисайта. Я думаю, это будет работать для любого сайта.

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

Надеюсь, это поможет.

пс. Если вы хотите перенаправить не с www на www, измените последнюю строку на

RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
...