2010-01-12 4 views

ответ

1

Поместите это в .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

Является '% {HTTP_HOST}. «бесполезно? – user198729

+0

Нет, я считаю, что он позволяет вам получить доступ к сайту с помощью IP-адреса без перенаправления. –

+0

это отличное описание! – jspcal

2
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.domain\.name$ [NC] 
RewriteRule (.*) http://domain.name/$1 [R=301,QSA,L] 
+0

Для этого требуется mod_rewrite. Просто использование Redirect (или RedirectMatch) может быть выполнено с использованием только наиболее часто используемых mod_alias. –

+0

no Вы не можете использовать Redirect для этого – jspcal

0

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

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

Смежные вопросы