.htaccess для перенаправления 301: какой синтаксис лучше? - PullRequest
2 голосов
/ 08 января 2012

Я постоянно перенаправляю свой сайт

http://www.oldsite.com

до

http://newsite.com/blog

Есть ли разница между использованием

Redirect 301 / http://newsite.com/blog/

или

RewriteEngine On 
RewriteRule ^(.*)$ http://newsite.com/blog/$1 [R=301,L]

По какой причине я должен использовать одну над другой?

Ответы [ 2 ]

3 голосов
/ 08 января 2012

Первый использует механизм внутреннего перенаправления Apache для направления всех запросов на / на http://newsite.com/blog с кодом ответа 301 Moved Permanently.

Другой загружает механизм переписывания Apache и перезаписывает все входящие запросы, которые соответствуют от ^(.*)$ до http://newsite.com/blog/ (добавление совпавшей части URI запроса к целевому URI) с кодом ответа 301 Moved PermanentlyВроде как.

Разница?Первый переписывает все в http://newsite.com/blog/ независимо от запроса, а второй учитывает URI запроса, переписывая его, как указано.Первый также несколько быстрее второго, потому что он не загружает механизм перезаписи, не анализирует сам запрос и (в зависимости от параметра AllowOverride) не должен искать и загружать .htaccess файлы.

1 голос
/ 08 января 2012

Я считаю, что разница в производительности между ними будет незаметна для пользователя.

Однако, если предположить, что все URL-адреса старого сайта блога полностью соответствуют новому сайту, я бы порекомендовал использовать второй метод.

Если вы используете первый метод, все ссылки на ваши старые посты в блоге окажутся на главной странице вашего нового сайта, что не очень удобно для пользователей, которые могут иметь ссылки в закладках и т. Д.

Если вы заботитесь о SEO, то это та же история, весь ваш рейтинг страниц перейдет от ваших старых постов в блоге к домашней странице вашего нового сайта.

...