Назад | Перейти на главную страницу

Перенаправление example.com/* на www.example.com/*

Я только что переехал на новый хост, и у них другая панель управления, чем та, которую я использовал раньше. На моем старом хосте все адреса domain.com/* были 301 перенаправлены на www.example.com/*, мне не нужно ничего настраивать, и я пытаюсь воспроизвести это на моем текущем хосте.

После некоторого поиска я нашел следующий код .htaccess, который я поместил в корневой файл .htaccess своего сайта:

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

И это работает, перенаправляя все страницы example.com/* на www.example.com/*, Кроме когда я захожу на example.com/forum. Если я захожу на свой форум с сайта www.example.com/forum, по какой-то причине он перенаправляется на example.com/forum (без www). Раньше этого не делали.

Итак, я поместил модифицированную версию приведенного выше кода в верхнюю часть файла .htaccess моего форума (который находится в / forum), с той лишь разницей, что в последней строке был добавлен «/ forum»:

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

Это работает, но мне просто интересно, собираюсь ли я делать это «правильно» или есть другой способ, который лучше?

Правила, которые я использую в корневом каталоге .htaccess

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

Есть ли у вас другие правила перезаписи в вашем файле .htaccess? Если это так, поместите первые 3 строки, которые вы показали, над другими правилами перезаписи.

Когда я это сделал, example.com/xyz перенаправлялся на www.example.com/xyz.

Мой файл .htaccess находится в моем корневом каталоге (/ var / ww в Ubuntu Lucid).

Вам нужен только один .htaccess в корне:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,L]