Как реализовать перенаправление 301 с PHP / Apache? - PullRequest
1 голос
/ 12 января 2010

Когда пользователь посещает www.domain.name, перенаправьте на domain.name.

Ответы [ 3 ]

2 голосов
/ 12 января 2010
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.name$ [NC]
RewriteRule (.*) http://domain.name/$1 [R=301,QSA,L]
1 голос
/ 12 января 2010

Поместите это в файл .htaccess в корневом каталоге вашего сайта:

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

Вот что они делают по порядку:

  1. Включите механизм перезаписи
  2. Убедитесь, что HTTP_HOST был предоставлен
  3. Если он не начинается с имени без www или любого другого поддомена , то разрешите перезаписи продолжить. Это предотвращает бесконечное перенаправление обратно на себя.
  4. Получите все после URL (.*), включая строку запроса QSA, и перенаправьте R=301 на правильный домен. L просто говорит, что это последняя команда в файле, если найдено совпадение.
0 голосов
/ 12 января 2010

В Apache вы добавляете строку Redirect в ваши файлы конфигурации. В php вы отвечаете кодом состояния 301 и заголовком Location:

Однако для перенаправления требуется дополнительная передача по сети. Вы уверены, что не хотите просто использовать линию ServerAlias, чтобы один и тот же контент обслуживался, независимо от того, посещают ли они с или без

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...