Перенаправление URL без www на www

Мне требуется ваша помощь. Я хочу проверить, введен ли URL-адрес без www

например example.com, его следует перенаправить на www.example.com.


person user160820    schedule 16.02.2010    source источник


Ответы (2)


Попробуйте это правило mod_rewrite:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
person Gumbo    schedule 16.02.2010
comment
примечание: это также перенаправит something.example.com на www.example.com - person Piskvor left the building; 16.02.2010
comment
@Piskvor: Нет, он перенаправит его на www.something.example.com. - person Gumbo; 16.02.2010
comment
Спасибо за ответ. Но что я имею в виду R = 301? - person user160820; 16.02.2010
comment
@basit74: флаг R вызывает внешнее перенаправление, а 301 — это код состояния ответа. - person Gumbo; 16.02.2010
comment
Я исправляюсь. @ basit74: R = 301 означает перенаправление HTTP с кодом 301 (перемещено навсегда). - person Piskvor left the building; 16.02.2010

Если вы используете nginx, добавьте эту строку в nginx config:

server {
  listen 80;
  server_name yourdomain.com;
  rewrite ^/(.*) http://www.yourdomain.com/$1 permanent;
}
person Lemon    schedule 21.10.2011