Есть ли преимущество перенаправления по сравнению с перезаписью, когда "скрывается" префикс домена "www"?

Используя виртуальные хосты, я привык использовать это:

<VirtualHost: *:80>
    ServerName www.example.com
    Redirect permanent / http://example.com/
</VirtualHost>

Тем не менее, я часто вижу переписывание:

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

Есть ли преимущество одного подхода перед другим?

2 ответа

Решение

Если вам не нужен mod_rewrite, не используйте его. Для простых случаев, подобных этому, вполне достаточно mod_alias, и его гораздо проще понять. Кроме того, хотя и незначительно, mod_alias быстрее, чем mod_rewrite - это может иметь значение на сайтах с большим объемом.

Эти две директивы приводят к тому, что один и тот же код 301 отправляется обратно в браузер. Так что никаких преимуществ ни тому, ни другому. Вы должны выбрать тот, который вам удобнее, и облегчает чтение файла конфигурации.

Оба способны также отправлять что-то кроме кода 301 (перманентного перенаправления). Вы должны всегда использовать 301 при устранении (или требовании) "www" для ясности для SEO и браузеров. Другие типы перенаправлений используются реже (очень редко); "временное перенаправление" является наиболее распространенным из них, и его следует использовать только в том случае, если место назначения перенаправления будет часто меняться (например, ссылка на вашу последнюю запись в блоге или что-то в этом роде).

Другие вопросы по тегам